Linux使用Array更新JSON



如何更新嵌套有数组的JSON?我在试用jq时遇到了麻烦。它切断了"b"中的项目,所以只有1个在里面。

jq '.items[1].b."1" = "changed"' <<< cat file.json

例如,如果一个json,如下所示:

{
"href": "1234",
"list": [{
"a": {
"dummy": "thing"
},
"b": {
"0": "thing",
"1": "thing", <--- ex. I want to change this
"2": "thing"
}
}]
}

期望结果

# Result that I want
{
"href": "1234",
"list": [{
"a": {
"dummy": "thing"
},
"b": {
"0": "thing",
"1": "changed", <--- this changed
"2": "thing"
}
}]
}

你会尝试以下操作吗:

jq '(.list[].b."1")="changed"' file.json

输出:

{
"href": "1234",
"list": [
{
"a": {
"dummy": "thing"
},
"b": {
"0": "thing",
"1": "changed",
"2": "thing"
}
}
]
}

最新更新