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

如何使用JSONata为JSON对象内嵌套的options数组追加元素

问题原因

你无法同时保留父级JSON结构和追加后的options数组,核心是你写的JSONata表达式仅返回了append操作得到的新数组,没有保留原对象的其他外层字段。JSONata会直接返回表达式的最终输出值,如果你的表达式只对options字段做操作,输出自然只有修改后的数组,丢失外层所有属性。

解决方案

你可以用JSONata内置的对象变换语法,实现「保留原有所有字段、仅修改指定字段」的效果,正确的表达式如下:

$ ~> | $ | {
  "options": $append(options, [{
    "description": "Choice number four",
    "displayOrder": 4,
    "hidden": false,
    "label": "Option 4",
    "value": 4
  }])
} |

上述语法中| |是JSONata的对象变换操作符,第一个$指代要修改的原根对象,中间的配置项仅声明需要覆盖的options字段,其余字段会自动原封不动保留。

如果你更习惯用$merge函数实现,也可以用如下写法,效果完全一致:

$merge([$, {
  "options": $append($.options, [{
    "description": "Choice number four",
    "displayOrder": 4,
    "hidden": false,
    "label": "Option 4",
    "value": 4
  }])
}])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:42:02