使用jq连接JSON对象

使用jq连接JSON对象,json,jq,Json,Jq,嗨,有没有一种方法可以使用jq向json添加对象 Main.JSON { "person": [ { "name": "John", "Age": 10 } ] "Work": [ { "Type":"HR" } ] } Sub.JS

嗨,有没有一种方法可以使用jq向json添加对象

Main.JSON

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

{
        "person":
        [
            {
            "name": "smith",
            "Age": 20
            }
        ]
}
使用Jq如何将subperson添加到主Json中,以便获得所需的输出

{
    "person": [{
            "name": "John",
            "Age": 10
        },
        {
            "name": "smith",
            "Age": 20
        }
    ],
    "Work": [{
        "Type": "HR"
    }]
}
  • Main.json中缺少逗号

  • 解决问题后,可以通过使用
    +=
    获得所需的结果,这与其他语言中的+=类似,但这里使用了串联意义上的数组添加:

  • 这里假设$sub包含sub.JSON中的JSON;假设您的jq支持--argfile命令行选项,则可以通过以下调用来实现:

    jq --argfile sub Sub.json '.person += $sub.person' Main.json
    
    三,。 如果jq没有--argfile选项,那么一种可能是使用“slurp”(-s)选项,如下所示:

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


    感谢您目前的建议--argfile不适用于1.3版。是否有任何其他选项来解析此。
     jq -s '.[1] as $sub | .[0]|.person += $sub.person'  Main.json Sub.json