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

JQ Group_by/Unique处理嵌套数组失效,如何提取唯一JSON条目?

解决JQ从嵌套JSON数组提取唯一条目去重问题

问题说明

需要从嵌套JSON结构中提取唯一的DN与SA组合并输出为CSV,但现有JQ过滤器输出存在重复内容。

原始JSON数据

[
{"SIR":[{"PMD":[{"MMA":[{"DN":"One","SA":"1"},{"DN":"Two","SA":"2"}]}]}]},
{"SIR":[{"PMD":[{"MMA":[{"DN":"Two","SA":"2"},{"DN":"Four","SA":"4"}]}]}]},
{"SIR":[{"PMD":[{"MMA":[{"DN":"Three","SA":"3"},{"DN":"Five","SA":"5"}]}]}]}
]

产生重复结果的JQ过滤器

'.[].SIR.PMD.MMA 
    | [.DN, .SA]
    | @csv'

当前输出(含重复)

One,1
Two,2
Two,2
Three,3
Four,4
Five,5

期望输出(无重复)

One,1
Two,2
Three,3
Four,4
Five,5

解决方案

修改JQ过滤器,先聚合所有目标条目,再执行去重操作,最终输出CSV:

[.[].SIR[].PMD[].MMA[] | [.DN, .SA]] | unique[] | @csv

关键步骤解释

  • 遍历嵌套数组:.[].SIR[].PMD[].MMA[] 逐层展开嵌套的数组结构,取出每一个包含DN和SA的对象。
  • 聚合为数组:用外层[]将所有[.DN, .SA]组合收集成一个大数组,为去重做准备。
  • 去重处理:unique函数会基于数组元素的内容进行比较,移除重复的条目。
  • 转换为CSV:展开去重后的数组,每个元素通过@csv格式化为CSV行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:02:52