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

JOLT转换中如何处理HMEmails空数组的条件逻辑?

JOLT Shift 处理空数组替换问题

需求明确:字段HMEmails需遵循以下转换规则:

  • 非空数组:保留原数组内容
  • 空字符串或空数组:替换为"....."

现有spec已实现前两种场景,但空数组输入时HMEmails字段会丢失——原因是空数组既匹配不到数组元素的*规则,也不属于空字符串的""规则,导致没有对应转换逻辑触发。

修正后的JOLT Spec

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "Place": "[&1].&",
        "HMEmails": {
          "*": {
            "@": "[&3].&2" // 非空数组时保留原内容
          },
          "": {
            "#.....": "[&3].&2" // 空字符串时替换为.....
          },
          "$": {
            "[]": {
              "#.....": "[&4].&3" // 空数组时替换为.....
            }
          }
        },
        "Recruit": "[&1].&"
      }
    }
  }
]

关键说明

  • 新增的"$": { "[]": {...} }规则,通过$引用HMEmails字段本身,用[]匹配空数组类型,触发替换逻辑。
  • 层级引用&4是因为嵌套层级:从空数组的匹配规则往上数,第4层对应外层的数组索引(即原spec中[&1]的层级),&3对应HMEmails字段名。

测试验证

  1. 非空数组输入:输出保留原数组内容,符合预期;
  2. 空字符串输入:输出".....",符合预期;
  3. 空数组输入:输出".....",字段不再丢失,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:52:07