首页 > 解决方案 > jq - 仅将第二个 JSON 文件中的单个键合并到主 JSON 文件中

问题描述

鉴于:

大师.json:

{"a":[{"x":1}], "b":1}

额外的.json:

{"a":[{"x":2}], "somekey2":2, "somekey3":3}

预期输出:

{
  "a": [
    {
      "x": 1
    },
    {
      "x": 2
    }
  ],
  "b": 1
}

我需要合并到key frommaster.json的内容中,忽略第二个 JSON 可能具有的所有其他键。"a"extra.json

试过这个,但没有用

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

标签: jsonjq

解决方案


你不需要啜它们。input没有任何标志,您可以通过关键字访问第二个输入。

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

推荐阅读