Добавьте новое поле, содержащее список значений в существующий JSON, используя jq - PullRequest
1 голос
/ 10 апреля 2019

Я хотел бы добавить переменную IntendedFor со значениями scan1 и scan2 в существующий файл JSON.

Я хотел бы сделать это с помощью функции jq, я пытался:

cat existing.json | jq '.IntendedFor |= "["scan1", "scan2"]"' > output.json

но я получаю сообщение об ошибке и пустой файл JSON.

Вот как я хочу, чтобы файл output.json выглядел следующим образом:

{  "existingjsonstuff": "andsoon",  
   "IntendedFor": ["scan1", "scan2"] 
}

Как сделатья понял это

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Вы можете просто использовать оператор += [..], чтобы добавить в массив необходимые элементы.

jq '.IntendedFor += [ "scan1", "scan2" ]' existing.json > output.json
0 голосов
/ 11 апреля 2019

Да, спасибо! В конце концов этот код сработал:

cat existing.json | jq --argjson args '["scan1","scan2"]' '.{"IntededFor"] += $args' > output.json
...