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

如何用Jolt转换将嵌套对象空字符串替换为null并保留其他数据

正确的Jolt转换规则

要实现将hireDate为空字符串("")或空格(" ")时替换为null,同时保留所有其他键值对的需求,可采用shift+modify-overwrite-beta组合操作:

[
  // 第一步:完整保留原有数据结构,避免丢失任何字段
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[&1].&",
        "employees": {
          "*": "[&2].employees[&1].&"
        }
      }
    }
  },
  // 第二步:处理hireDate的空值/空格替换逻辑
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "employees": {
          "*": {
            "hireDate": ["=trim", "=isNull", null]
          }
        }
      }
    }
  }
]

规则说明

  1. shift操作:

    • [&1].& 负责保留根对象的所有非employees字段(比如示例里的"other data");
    • [&2].employees[&1].& 确保employees数组中的每个对象及其所有字段都被完整映射,不会丢失员工的其他属性。
  2. modify-overwrite-beta操作:

    • 先用=trim去除hireDate值的前后空格,将原空格字符串(" ")转为空字符串;
    • 再用=isNull判断处理后的值是否为空,若是则替换为null,否则保留处理后的原值。

验证示例

输入:

[
    {
        "companyName": "Tech Corp",
        "employees": [{
            "id": 1,
            "name": "John Doe",
            "hireDate": ""
        },
        {
            "id": 2,
            "name": "Jane Smith",
            "hireDate": " "
        },
        {
            "id": 3,
            "name": "Bob Brown",
            "hireDate": "2023-01-01"
        }]
    }
]

转换后输出:

[
  {
    "companyName": "Tech Corp",
    "employees": [
      {
        "id": 1,
        "name": "John Doe",
        "hireDate": null
      },
      {
        "id": 2,
        "name": "Jane Smith",
        "hireDate": null
      },
      {
        "id": 3,
        "name": "Bob Brown",
        "hireDate": "2023-01-01"
      }
    ]
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:37:11