#!/bin/bash

TARGET='salar.json'

echo -n '{"salar":[' > $TARGET

IFS=$'\n' GLOBIGNORE='*' command eval 'csv=($(<salar.csv))'

IFS=';' read -r -a header <<< "${csv[0]}"
for index in "${!csv[@]}"; do
    if (( $index > 0 )); then
        echo -n '{' >> $TARGET
        IFS=';' read -r -a fields <<< "${csv[$index]}"
        for i in "${!fields[@]}"; do
            echo -n "\"${header[$i]}\":" >> $TARGET
            if [[ "${fields[$i]}" == "" ]]; then
                echo -n 'null' >> $TARGET
            else
                echo -n "\"${fields[$i]}\"" >> $TARGET
            fi

            if (( $i + 1 < ${#fields[@]} )); then
                echo -n ',' >> $TARGET
            fi
        done
        echo -n '}' >> $TARGET

        if (( $index + 1 < ${#csv[@]} )); then
            echo -n ',' >> $TARGET
        fi
    fi
done

echo -n "]}" >> $TARGET
