我需要使用JQ在JSON树中的嵌套对象中修改一个元素--an array--(例如:“group-xyz”),但是一旦完成,我需要使用修改后的数据返回整个对象。
目标是更新JSON树并将其保存为完整。例如:添加数组元素,空数组等。
{
"group-abc": {"users": ["tina.turner"]},
"group-def": {"users": ["someone.else"]},
"group-xyz": {"users": ["that.thing"]
}
然后我有兴趣返回这样的对象:
{
"group-abc": {"users": ["tina.turner"]},
"group-def": {"users": []},
"group-xyz": {"users": ["that.thing","well.done"]
}
我已经改变了我的要求以适应更复杂的形式。要将用户添加到这些组的任何用户,这就是我所做的:
jq '. |= map( if ( .group=="abc") then .users+=["final.answer",] else . end)' source.json
这产生了一个结果
[
{
"group": "abc",
"users": [
"user1",
"user2",
"final.answer"
]
},
{
"group": "def",
"users": [
"user4",
"user5"
]
}
]