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

如何使用JQ根据属性值查找替换JSON数组中的目标元素值

实现方法

不需要依赖数组索引,直接用jq的条件筛选匹配目标元素即可,语法如下:

.configs |= map(select(.configName == "config1") | .configName = "foo")

逻辑说明

  • |= 是更新赋值运算符,会将左侧.configs数组按照右侧逻辑处理后完成值更新
  • map() 遍历数组所有元素,不符合筛选条件的元素会原样保留,不会被改动
  • select(.configName == "config1") 负责筛选出configName值为config1的目标元素,匹配逻辑和元素位置完全无关
  • 对筛选出的目标元素执行.configName = "foo",即可完成属性值修改

如果数组内存在多个configName为config1的项,上述写法会修改所有匹配项;如果确定目标项唯一,该写法不受元素位置变动影响,稳定性远高于按索引取值的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:18:33