修改嵌套对象但保留完整对象

问题描述 投票:-3回答:1

我需要使用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
1个回答
1
投票

我已经改变了我的要求以适应更复杂的形式。要将用户添加到这些组的任何用户,这就是我所做的:

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"
        ]
    }
]
© www.soinside.com 2019 - 2024. All rights reserved.