我有一个json对象,形式为:
{
...
objectx: {
nested_obj1: {
key1: value1
},
nested_obj2: {
key2: value2
},
...
},
...
}
。我需要使用jq向keyX: valueX
中的所有nested_obj
添加一个objectx
。
我试图使用.objectx | map(.+{keyX: valueX})
应用地图过滤器,但无法弄清楚如何将此过滤后的列表存储到原始json对象中。我该如何实现?
答案 0 :(得分:2)
选择要更新的对象(objectx
对象的值)并设置所需的值。 map
设计用于数组,而不是对象。 map_values
可以代替。
.objectx |= map_values(.keyX = $valueX)
我个人更喜欢这样做:
.objectx[].keyX = $valueX
请注意,在对象上使用[]
将产生该对象的所有值。