将具有相同键值对的JSON数组与jq组合

时间:2019-06-21 10:23:02

标签: json group-by jq

感谢为我的上一个jq新手问题提供帮助的人,并帮助我找到了一系列对象:

choco-solver-4.10.0.jar

我已经更改了上一个问题的键和值,以尝试帮助解释我在哪里尝试使用此方法。

我现在正在尝试根据共享密钥的值对对象进行分组。然后,对于每个分组对象数组,创建一个新对象,其中该数组是新键的值。

我尝试使用“ group_by”进行分组,但这仍然是我尝试去的一种公平的方式,而且我可以肯定的是,我在jq中缺少一些关键概念。

[
  {
    "any_key":"any_value",
    "group_key":"group_val1"
  },
  {
    "any_key":"any_value",
    "group_key":"group_val1"
  },
  {
    "any_key":"any_value",
    "group_key":"group_val2"
  },
  {
    "any_key":"any_value",
    "group_key":"group_val2"
  }
]

这是我正在尝试(痛苦地)到达的地方:

[
  [
    {
      "any_key":"any_value",
      "group_key":"group_val1"
    },
    {
      "any_key":"any_value",
      "group_key":"group_val1"
    }
  ]
]
[
  [
    {
      "any_key":"any_value",
      "group_key":"group_val2"
    },
    {
      "any_key":"any_value",
      "group_key":"group_val2"
    }
  ]
]

不确定我已经非常清楚地解释了这一点...对不起!但是任何帮助将非常非常感谢!

1 个答案:

答案 0 :(得分:0)

您显然正在寻找的过滤器比您想象的要简单:

group_by(.group_key)
| map( {new_key1: .[0].group_key,
        new_key2: .} )