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

如何使用jq查找JSON数组中的重复项?

用jq查找JSON数组中的重复项

没问题!我来教你怎么用jq快速搞定这个需求,针对你给出的示例,咱们一步一步来:

核心命令

直接用这条jq表达式就能得到你想要的结果:

group_by(.) | map(select(length>1)) | unique

分步解释

咱们拆解一下每个部分的作用,方便你理解:

  • group_by(.):把数组里完全相同的元素归为一组。你的输入经过这一步会变成:
    [[{"foo":1,"bar":2},{"foo":1,"bar":2}], [{"foo":4,"bar":5}]]
    
  • map(select(length>1)):筛选出元素个数大于1的分组(也就是存在重复的组),这时候结果是:
    [[{"foo":1,"bar":2},{"foo":1,"bar":2}]]
    
  • unique:把每个分组里的重复元素去重,最终就得到了你要的输出:
    [{"foo":1,"bar":2}]
    

完整使用示例

如果你把输入存在input.json文件里,直接运行:

jq 'group_by(.) | map(select(length>1)) | unique' input.json

或者直接用管道传递输入:

echo '[{"foo": 1, "bar": 2}, {"foo": 1, "bar": 2}, {"foo": 4, "bar": 5}]' | jq 'group_by(.) | map(select(length>1)) | unique'

补充说明

这个方法适用于任何JSON结构的元素,不管是简单的键值对还是嵌套结构,jq都会递归比较整个元素的内容是否完全一致,非常靠谱~

内容的提问来源于stack exchange,提问作者M.Ridha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:51:03