JQ, как объединить несколько объектов в массиве в один - PullRequest
0 голосов
/ 24 января 2019

Немного сложнее, как мой вопрос, упомянутый ниже. Я научился больше использовать массивы, но это тоже мешает.

Введите:

{
  "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 Как объединить несколько объектов в один

{ x: [ inputs | .a[] | { (.h[]): .i } ] | add}

1 Ответ

0 голосов
/ 24 января 2019

Ключом к простому решению является transpose:

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