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

如何用Jolt避免可选字段缺失时生成**及移除空对象

Jolt 转换解决方案

完整 Jolt 转换规则

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "name": "=concat('*', @(1,name), '*')",
      "addressLine1": "=concat('*', @(1,addressLine1), '*')",
      "addressLine2": "=concat('*', @(1,addressLine2), '*')"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "SecondaryRatings": ""
    }
  },
  {
    "operation": "shift",
    "spec": {
      "name": "name",
      "addressLine1": "addressLine1",
      "addressLine2": "addressLine2",
      "postalCode": "postalCode",
      "tour": "tour",
      "*": "&"
    }
  }
]

规则说明

  • 字段值包裹处理:modify-overwrite-beta 操作配合 concat 函数,仅当原字段存在时,才会将其值用 * 包裹。若原字段缺失,该操作不会生成对应字段,彻底避免空的 ** 问题。
  • 空对象移除:remove 操作直接删除 SecondaryRatings 字段,无论原数据中该字段是否为空,缺失时也不会产生影响。
  • 原生字段保留:shift 操作明确保留 postalCode 和 tour 的原始值,"*": "&" 可保留其他未指定的字段,按需调整即可。

示例验证

输入 JSON:

{
  "name": "John Doe",
  "postalCode": "12345",
  "tour": "City Tour",
  "SecondaryRatings": {}
}

转换后输出:

{
  "name": "*John Doe*",
  "postalCode": "12345",
  "tour": "City Tour"
}

若输入缺失 addressLine1 和 addressLine2,输出中不会出现这两个字段,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:42:04