使用jq将包含值列表的新字段添加到现有JSON

时间:2019-04-10 15:23:49

标签: json unix jq

我想将具有值IntendedForscan1的变量scan2添加到现有的JSON文件中。

我想通过jq函数来做到这一点,我尝试过:

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

但是我得到了错误并且JSON文件为空。

这就是我想要的output.json文件看起来像什么:

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

我怎么得到这个??

2 个答案:

答案 0 :(得分:1)

您可以只使用+= [..]运算符将所需元素添加到数组中。

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

答案 1 :(得分:0)

是,谢谢!最终,这段代码成功了:

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