JQ如何将数组中的多个对象合并为一个 [英] JQ how to merge multiple objects in an array into one

查看:437
本文介绍了JQ如何将数组中的多个对象合并为一个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题将在下面提到. 我学会了更多地使用数组,但是它也会使事情搞砸.

A little more sophisticated as my question mentioned below. I learned to use arrays more, but it screws things up too.

输入:

{
  "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}

推荐答案

简单解决方案的关键是transpose:

The key to a simple solution is transpose:

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

这篇关于JQ如何将数组中的多个对象合并为一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆