使用jq连接JSON对象

时间:2017-04-21 17:05:58

标签: json jq

您好有办法使用jq

将对象添加到json

Main.JSON

{
        "person":
        [
            {
            "name": "John",
            "Age": 10
            }
        ]
        "Work":
        [
            {
            "Type":"HR"
            }
        ]
}

Sub.JSON

{
        "person":
        [
            {
            "name": "smith",
            "Age": 20
            }
        ]
}

使用Jq如何将子人添加到主Json,以便所需的输出

{
    "person": [{
            "name": "John",
            "Age": 10
        },
        {
            "name": "smith",
            "Age": 20
        }
    ],
    "Work": [{
        "Type": "HR"
    }]
}

1 个答案:

答案 0 :(得分:0)

  1. Main.json

  2. 中缺少逗号
  3. 解决问题之后,可以使用+=获得所需的结果,这类似于+ =在其他语言中,但这里使用了连接意义上的数组添加:

  4.  .person += $sub.person
    

    这里假设$ sub包含Sub.json中的JSON;假设您的jq支持--argfile命令行选项,可以使用以下调用来完成:

    jq --argfile sub Sub.json '.person += $sub.person' Main.json
    

    3。 如果你的jq没有--argfile选项,那么有一种可能性就是使用“slurp”( - s)选项,如下所示:

     jq -s '.[1] as $sub | .[0]|.person += $sub.person'  Main.json Sub.json