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

如何通过JSONata根据输入是否含prop3属性转换JSON对象?

JSONata实现动态属性映射需求

完全可以通过JSONata实现这个需求,核心是利用JSONata的$nothing特殊值实现条件性包含属性——当原属性存在时生成对应目标属性,不存在则不生成。

对应的JSONata表达式

{
  "property_1": prop1,
  "property_2": prop2,
  "property_3": prop3 ? prop3 : $nothing
}

表达式说明

  • prop1和prop2直接映射为property_1和property_2;如果需要对这两个属性也做“存在才生成”的处理,同样可以套用prop1 ? prop1 : $nothing的写法
  • 对于prop3,用三元表达式判断:若prop3存在且有有效值,就将其赋值给property_3;若prop3不存在,返回$nothing——JSONata会自动忽略值为$nothing的属性,因此输出中不会出现property_3

验证示例

输入1:

{
  "prop1":"prop1 value1",
  "prop2":"prop2 value1",
  "prop3":"prop3 value1"
}

代入表达式后,prop3存在,输出符合期望:

{
  "property_1": "prop1 value1",
  "property_2": "prop2 value1",
  "property_3": "prop3 value1"
}

输入2:

{
  "prop1":"prop1 value1",
  "prop2":"prop2 value1"
}

代入表达式后,prop3不存在,property_3被自动忽略,输出符合期望:

{
  "property_1": "prop1 value1",
  "property_2": "prop2 value1"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:04:58