JQ如何将数组中的多个对象合并为一个

时间:2019-01-24 15:49:44

标签: arrays json object add jq

我的问题如下所述。 我学会了更多地使用数组,但是它也会使事情搞砸。

输入:

{
  "a": [
    {
      "b": "c",
      "d": "e"
    },
    {
      "b": "f",
      "d": "g"
    }
  ],
  "h": [
    {
      "b": "c",
      "i": "j"
    },
    {
      "b": "f",
      "i": "k"
    }
  ]
}

所需的输出:

{
  "l": [
    {
      "b": "c",
      "d": "e",
      "i": "j"
    },
    {
      "b": "f",
      "d": "g",
      "i": "k"
    }
  ]
}

根据JQ How to merge multiple objects into one

我尝试过的事情
{ x: [ inputs | .a[] | { (.h[]): .i } ] | add}

1 个答案:

答案 0 :(得分:1)

简单解决方案的关键是transpose

[.a, .h]
| transpose
| map(add)
| {l: .}