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

如何使用jq按条件删除JSON数组对象中指定数组的特定值

jq实现删除co_author数组中与creator重复元素的方法

正确执行命令

直接运行如下命令即可得到你需要的输出:

jq 'map(. as $current | .co_author |= map(select(. != $current.creator)))' test_4.json

命令逻辑说明

  • 外层map()用于遍历最外层JSON数组的每个作者对象
  • . as $current将当前正在处理的作者对象存入临时变量$current,避免嵌套操作时上下文丢失,无法正确获取对应creator字段值
  • .co_author |= map(select(. != $current.creator))对co_author数组做更新:遍历co_author的每个元素,仅保留与当前对象creator值不相等的元素

原命令错误原因

你之前的命令存在两个问题:

  • 语法不完整:if条件分支缺少else分支和闭合的end关键字
  • 逻辑错误:直接用.co_author[] == .creator的判断逻辑无法精准定位要删除的元素,也无法保留co_author数组的原有结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:15:01