You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jq提取JSON中各唯一键对应的所有值并封装为对象

jq处理JSON数组实现键值列表聚合

前置要求

确保你的输入是包裹在[]中的合法JSON数组,你给出的示例为数组内的元素结构,需先补全外层数组括号才可正常解析。

核心处理命令

jq 'reduce .[] as $item ({}; .[$item | keys[]] += [$item[.]])' input.json

效果示例

输入样例

[
  {
    "sepalLength": 5,
    "sepalWidth": 3.3,
    "petalLength": 1.4,
    "petalWidth": 0.2,
    "species": "setosa"
  },
  {
    "sepalLength": 7,
    "sepalWidth": 3.2,
    "petalLength": 4.7,
    "petalWidth": 1.4,
    "species": "versicolor"
  },
  {
    "sepalLength": 6.4,
    "sepalWidth": 3.2,
    "petalLength": 4.5,
    "petalWidth": 1.5,
    "species": "versicolor"
  }
]

输出结果

{
  "sepalLength": [
    5,
    7,
    6.4
  ],
  "sepalWidth": [
    3.3,
    3.2,
    3.2
  ],
  "petalLength": [
    1.4,
    4.7,
    4.5
  ],
  "petalWidth": [
    0.2,
    1.4,
    1.5
  ],
  "species": [
    "setosa",
    "versicolor",
    "versicolor"
  ]
}

命令逻辑说明

  • 遍历输入数组中的每一个对象,以空对象作为初始聚合容器
  • 逐个提取当前对象的所有键,将键对应的值追加到聚合容器同键名的数组中
  • 自动收集所有出现过的唯一键,兼容数组中对象键不完全一致的场景

内容的提问来源于stack exchange,提问作者robby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:24:05