Как преобразовать текстовый файл в файл json? [закрыто]

У меня есть текстовый файл, содержащий что-то вроде следующего:

google.com,father@google.com,json@google.com
latter.com,john@latter.com

Я пытаюсь преобразовать этот текст в Json формат такой:

{
"domain": "google.com",
"emails":[{"email":"father@google.com","First":"xyz","Last":"pqr"},{"email":"json@google.com","First":"xyz","Last":"pqr"}]

}
{
"domain": "latter.com",
"emails":[{"email":"john@latter.com","First":"xyz","Last":"pqr"}]
}

Можно ли преобразовать такой текст в что-нибудь в таком формате JSON? Пожалуйста, дайте мне знать.

1
задан 25 January 2017 в 14:17

2 ответа

@Jaffer Wilson Вот быстрый и грязный скрипт bash, который может вам помочь

function to_json() {
echo -en '{\n"domain":"'"$1"'",\n"emails":['
shift
EC=0
for EMAIL in "$@"
do
    echo -n '{"email":"'"$EMAIL"'","First":"xyz","Last":"pqr"}'
    EC=`expr "$EC" + 1`
    if [ "$EC" -ne "$#" ]; then
        echo -n ","
    fi
done
echo -e "]\n},"
}

while read LINE
do
    PARAMS=$(echo "$LINE" | tr "," " ")
    to_json "$PARAMS"
done

Я сохранил его как convert_to_json.sh и предположил, что в data.txt текст запускается как

$ chmod +x convert_to_json.sh
$ ./convert_to_json.sh < data.txt
0
ответ дан 25 January 2017 в 14:17

Быстрый и грязный жемчуг:

perl -MJSON -F, -lane '
    print encode_json({
        domain => shift @F, 
        emails => [map {{email => $_, First=>"xyz", Last=>"pqr"}} @F]
    })
' file

Или ужасный ужасный awk

awk -F, '{
    printf "{\"domain\":\"%s\",\"emails\":[", $1
    sep=""
    for (i=2; i<=NF; i++) {
        printf "%s{\"email\":\"%s\",\"First\":\"xyz\",\"Last\":\"pqr\"}", sep, $i
        sep=","
    }
    print "]}"
}' file 
2
ответ дан 26 January 2017 в 00:17
  • 1
    Спасибо @Ankur22 это работает на меня при помощи Меню инструментов... – mefahimrahman 28 November 2018 в 07:38

Другие вопросы по тегам:

Похожие вопросы: