假设我有以下大型json
{
"firsttag": {
"secondtag": [
{
"thirdtag": [
{
"someothertag": [
{
"sample":"else"
},
{
"targetBlank": true,
}
],
"interestingtag": [
{
"refId": "A",
"target": "abc",
},
{
"refId": "B",
"target": "bbb",
},
{
"refId": "C",
"target": "ccc",
}
],
},
},
"overwrite": true
}
我的JSON可能在语法上并不完美但是因为我已经编辑了一些东西。现在我想做的是,我想在interestingtag
下添加与其他输入类似的其他输入。例如,我希望它像
"interestingtag": [
{
"refId": "A",
"target": "abc"
},
{
"refId": "B",
"target": "bbb"
},
{
"refId": "C",
"target": "ccc"
},
{
"refId": "D",
"target": "ddd"
}
],
但我无法弄明白该怎么做。我可以使用
检索正确的位置jq '.firsttag.secondtag[0].thirdtag[0].interestingtag' myfile.json
但是当我尝试简单的
时jq '.firsttag.secondtag[0].thirdtag[0].interestingtag + {"refId": "D", "refID": "C"}' myfile.json
我得到了
jq: error: array and object cannot be added
知道我怎么能这样做吗?或者我做错了什么?
感谢您的帮助。
答案 0 :(得分:1)
+
不会向数组追加元素。您希望使用|= .+ [...]
jq '.firsttag.secondtag[0].thirdtag[0].interestingtag |= .+ [{"refId": "D", "refID": "C"}]' myfile.json
合并数组
Manager().Namespace()