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

如何使用JQ将异构JSON对象合并为符合要求的单个数组?

解答

首先需要说明:你给出的期望输出本身不符合标准JSON语法规范,JSON数组中不允许直接存放键值对结构,仅支持存放值类型或者对象/数组。以下分别给出适配你要求的非标准格式输出方案,以及符合JSON规范的输出方案:

方案1:输出你要求的非标准格式

使用如下jq命令即可得到你给出的输出样式,同时会自动将b的值从字符串转为数字类型:

jq '[to_entries[] | .value | to_entries[] | {k:.key, v: if (.value | type) == "array" then .value[] else (.value | tonumber? // .) end} | "\"\(.k)\": \(.v | tojson)" ]'

输出结果:

[
  "a": "A",
  "b": 123,
  "c": "C1",
  "c": "C2"
]

方案2:输出符合JSON规范的结构(推荐)

如果需要输出合法JSON,可以生成由单个键值对对象组成的数组,命令如下:

jq '[to_entries[] | .value | to_entries[] | {k:.key, v: if (.value | type) == "array" then .value[] else (.value | tonumber? // .) end} | {(.k): .v} ]'

输出结果:

[
  {"a": "A"},
  {"b": 123},
  {"c": "C1"},
  {"c": "C2"}
]

内容的提问来源于stack exchange,提问作者lbj-ub

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:57:03