jq-仅将第二个JSON文件中的单个密钥合并到主JSON文件中

jq-仅将第二个JSON文件中的单个密钥合并到主JSON文件中,json,jq,Json,Jq,鉴于: master.json: {"a":[{"x":1}], "b":1} extra.json: {"a":[{"x":2}], "somekey2":2, "somekey3":3} 预期产出: { "a": [ { "x": 1 }, { "x": 2 } ], "b": 1 } 我需要合并到extra.json中的master.json键的内容中,忽略第二个json可能具有的所有其他键 我试过了,但没用 jq

鉴于:

master.json:

{"a":[{"x":1}], "b":1}
extra.json:

{"a":[{"x":2}], "somekey2":2, "somekey3":3}
预期产出:

{
  "a": [
    {
      "x": 1
    },
    {
      "x": 2
    }
  ],
  "b": 1
}
我需要合并到
extra.json
中的
master.json
键的
内容中,忽略第二个json可能具有的所有其他键

我试过了,但没用

jq -s "add" '.[a] + .[a]' x1 x2

你不需要咕噜咕噜地说。在没有任何标志的情况下,您可以通过
input
关键字访问第二个输入

$ jq '.a += input.a' master.json extra.json 
{
  "a": [
    {
      "x": 1
    },
    {
      "x": 2
    }
  ],
  "b": 1
}

你不需要咕噜咕噜地说。在没有任何标志的情况下,您可以通过
input
关键字访问第二个输入

$ jq '.a += input.a' master.json extra.json 
{
  "a": [
    {
      "x": 1
    },
    {
      "x": 2
    }
  ],
  "b": 1
}

只要文件的大小不是很大,就可以对其进行slurp处理并附加数组
a
的内容

jq -s '.[].a = ([.[].a]|add|unique)|.[0]' master.json extra.json

如果允许为数组保留重复的对象,则可以删除
唯一的
部分。

只要文件大小不太大,就可以将其拖拽并附加数组
a
的内容

jq -s '.[].a = ([.[].a]|add|unique)|.[0]' master.json extra.json
如果允许为阵列保留重复对象,则可以删除“唯一”部分