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

如何用jq为JSON嵌套对象添加默认值并去除嵌套数组重复项?

用JQ实现JSON字段保留+items补默认值+去重

直接用这条JQ命令就能搞定,既能保留原JSON的所有字段,又能完成你要的两项操作:

.items |= (map(.version //= "NA") | unique_by(.name))

命令拆解:

  • .items |= ...:只对顶级的items数组做修改,其他字段原封不动保留
  • map(.version //= "NA"):遍历items里的每个对象,要是某个对象缺version字段,就自动补上"NA"
  • unique_by(.name):按name字段去重,数组里第一个出现的同名对象会被保留,后续重复的直接剔除

示例演示:

假设原JSON是这样:

{
  "id": "123",
  "type": "collection",
  "items": [
    {"name": "toolA", "version": "1.0"},
    {"name": "toolB"},
    {"name": "toolA", "version": "2.0"}
  ]
}

执行命令后得到的结果:

{
  "id": "123",
  "type": "collection",
  "items": [
    {"name": "toolA", "version": "1.0"},
    {"name": "toolB", "version": "NA"}
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:37:39