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

使用jq向现有JSON中匹配特定键值对的列表元素添加新字段

jq修改JSON数组元素后保留完整结构的解决方法

问题原因

你写的命令中使用了|管道符,将执行上下文切换到了.parent."child-list"数组层面,修改完成后自然只会输出数组本身,丢失了外层JSON结构。

正确命令

jq '(.parent."child-list"[] | select(."usecase" == "second")) += {"result": "SUCCESS"}' base.json

命令说明

  • 用括号包裹选择逻辑(.parent."child-list"[] | select(."usecase" == "second")),表示定位到原JSON中符合条件的对象本身,不会切换执行上下文
  • 直接对定位到的对象执行+=操作添加键值对,不会改动原JSON的其他结构,执行后会返回完整的JSON内容

可选操作

如果需要直接修改原文件,不需要输出到终端,可以加上-i(就地编辑)参数:

jq -i '(.parent."child-list"[] | select(."usecase" == "second")) += {"result": "SUCCESS"}' base.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:24:03