Add new element to existing JSON array with jq

前端 未结 3 1331
甜味超标
甜味超标 2020-11-30 01:44

I want to append an element to an array in a JSON file using the jq``add command, but it\'s not working.

report-2017-01-07.json file:

3条回答
  •  旧巷少年郎
    2020-11-30 02:11

    Summary: ". +" is your saviour

    Details:

    For adding an entry to a list: You can append [list1] + [list2] (and not [list] + data)

    $ echo '[ "data1" ]' | jq '. + [ "data2" ]'
    [
      "data1",
      "data2"
    ]
    
    $ echo '[ {"key1": "value1"} ]' | jq '. + [{"key2": "value2"}]'
    [
      {
        "key1": "value1"
      },
      {
        "key2": "value2"
      }
    ]
    

    For adding a key/value to a dictionary:

    $ echo '{"key1": "value1"}' | jq '. + {"key2": "value2"}'
    {
      "key1": "value1",
      "key2": "value2"
    }
    

    References:

    https://gist.github.com/joar/776b7d176196592ed5d8

提交回复
热议问题