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

如何在JSONata中实现类似JS扩展运算符的查询结果扩展?

JSONata实现类似JavaScript扩展运算符的对象扩展

完全可以实现,JSONata提供了两种简洁的方式来合并对象、添加新字段,无需手动列出原有所有字段:

方法1:使用$merge函数

$merge函数接收对象数组,将其合并为单个新对象——后续对象的字段会覆盖前面对象的同名字段(无同名字段时则直接添加)。

针对你的场景,查询语句如下:

$merge([input, {"age": 35}])

输入输出示例

输入JSON:

{
  "input": {
    "name": "John",
    "email": "john@domain.com"
  }
}

执行查询后输出:

{
  "name": "John",
  "email": "john@domain.com",
  "age": 35
}

方法2:使用对象转换运算符(~>)

JSONata的对象转换运算符可对目标对象进行修改,支持添加、更新、删除字段,语法为对象 ~> |目标路径| 修改对象|。这里用$指代当前对象(即input),直接追加新字段:

查询语句:

input ~> |$| {"age": 35}|

该方式同样会保留原对象所有字段并添加age,效果与$merge一致。

优势对比

你之前的写法input.{"name": name, "email": email, "age": 35}需要手动枚举所有原有字段,而上述两种方法无需重复编写,完全等效于JavaScript的{...input, age: 35}写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:10:39