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

JMESPath能否更新JSON对象?如何为people.data新增field1属性

JMESPath是否支持JSON更新操作?

JMESPath 原生完全不支持对JSON对象的新增、修改、删除这类更新操作。
JMESPath从设计之初就是只读的JSON查询语言,核心能力是从现有JSON结构中检索、过滤、提取目标数据,所有表达式执行过程都不会改动原始输入的JSON内容,没有提供任何写入类的语法规则。

对应新增属性需求的实现方案

你给出的JSON结构中people字段是数组类型,并非单个对象,不存在直接的people.data单节点路径,实际要操作的是people数组下每个元素内嵌的data对象。
要实现给该路径下新增"field1": "value1"的需求,通用做法是两步:

  • 第一步:用JMESPath表达式people[].data定位到所有需要修改的目标data节点
  • 第二步:配合你当前使用的编程语言的原生JSON处理能力,给每个匹配到的data对象追加field1属性即可

修改完成后的正确JSON结构如下:

{
    "people": [
        {
            "age": 20,
            "other": "foo.aaa",
            "name": "Bob",
            "data":{
                "field":"value",
                "field1": "value1"
            }
        }
    ]
}

不要尝试用JMESPath的投影、多字段合并类查询语法直接模拟修改效果,这类语法只会生成查询阶段的临时结果结构,无法按指定路径回写原始JSON,很容易出现整体结构错位的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:09:24