使用JSONata扩展查询结果

前端开发 2026-07-08

我在研究JSONata库,想知道是否有办法扩展查询结果,类似 ... 的展开语法。例如:我有下面这个对象:

{
  "input": {
    "name": "John",
    "email": "[email protected]"
  }
}

使用以下JSONata查询表达式

input

得到如下结果:

{
  "name": "John",
  "email": "[email protected]"
}

现在我想在这个结果中再添加一个字段,使结果看起来像:

{
  "name": "John",
  "email": "[email protected]",
  "age": 35
}

我可以用如下查询实现类似的效果:

input.{"name": name, "email": email, "age": 35}

但我想知道是否有办法在不逐个写出所有字段的情况下实现同样的效果,类似于:

input.{*, "age": 35}

JavaScript的等价写法是

{
  ...input,
  age: 35
}

但在JSONata查询中并不存在 ... 运算符。这真的可能吗?

解决方案

再多玩了一点之后,我发现

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

可以得到所需的结果。这里有一个在线示例

希望对你有帮助

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章