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

请求生成符合指定规则的JOLT转换规格说明

正确JOLT转换方案实现

需求说明

转换规则如下:

  • 若risk值为"0",则risklevel设为"Low"
  • 若risk值为null,则risklevel保持null
  • 若risk值为"1",则risklevel设为"High"
    同时保留原数据中的name、age、location字段。

输入示例

[
  {
    "name": "Manu",
    "age": 26,
    "location": "New York",
    "risk": "0"
  },
  {
    "name": "Manju",
    "age": 29,
    "location": "New York city",
    "risk": null
  }
]

期望输出

[
  {
    "name": "Manu",
    "age": 26,
    "location": "New York",
    "risklevel": "Low"
  },
  {
    "name": "Manju",
    "age": 29,
    "location": "New York city",
    "risklevel": null
  }
]

原JOLT规格的问题

  1. Shift操作中对null值的处理错误,"null": null无法正确将null赋值给risklevel
  2. 后续的default操作会把未生成risklevel的字段设为字符串"null",而非原生null类型
  3. modify-overwrite-beta操作强制将risklevel转为字符串,导致原生null被转为"null"字符串,完全不符合需求

正确的JOLT转换规格

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "name": "[&1].name",
        "age": "[&1].age",
        "location": "[&1].location",
        "risk": {
          "0": {
            "#Low": "[&2].risklevel"
          },
          "1": {
            "#High": "[&2].risklevel"
          },
          "null": {
            "@": "[&2].risklevel"
          }
        }
      }
    }
  }
]

规格说明

这个单一的shift操作即可完成所有需求:

  • 遍历数组中的每个元素("*"),直接映射name、age、location到对应索引的目标对象中
  • 对risk字段做分支匹配:
    • 匹配到"0"时,用#Low生成固定值"Low"作为risklevel
    • 匹配到"1"时,用#High生成固定值"High"作为risklevel
    • 匹配到null时,通过@引用当前的null值,直接赋值给risklevel,保留原生null类型
  • &2用于回溯到数组元素的层级,确保risklevel被赋值到正确的数组对象中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:54:54