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

Jolt转换需求:子对象全为null时将父对象设为空对象

Jolt转换方案:处理空地址对象需求

需求说明

源JSON:

{
  "name": "Andrew",
  "address": {
    "permanentAddress": null,
    "temporaryAddress": null
  }
}

期望转换后的目标JSON:

{
  "person": {
    "name": "Andrew",
    "address": {}
  }
}

核心要求:当permanentAddress和temporaryAddress全为null时,把person.address设为空对象,不能保留带null值的字段。

原方案问题

之前用的shift操作仅做结构映射,会原样保留所有字段(包括null值),达不到过滤空字段的效果。

正确转换规则

需要组合shift和modify-overwrite-beta两个操作,先完成结构映射再清理null字段:

[
  {
    "operation": "shift",
    "spec": {
      "name": "person.name",
      "address": "person.address"
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "person": {
        "address": "=recursivelySquashNulls"
      }
    }
  }
]

规则说明

  1. shift步骤:完成基础结构映射,将源数据的name对应到person.name,address整体映射到person.address。
  2. modify-overwrite-beta步骤:通过recursivelySquashNulls函数递归移除person.address下所有值为null的字段。如果所有子字段都被清理,address会自动变成空对象。

转换结果

运行上述规则后,输出完全符合目标要求:

{
  "person": {
    "name": "Andrew",
    "address": {}
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:06:05