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

如何用JOLT实现带条件判断与字符串拼接的JSON转换?

用JOLT实现带if-else逻辑的JSON转换

原始输入JSON

[
  {
    "id": 0,
    "error_code": 603,
    "error_desc": "Some ads error occurs: URL needed.",
    "taskId": 630
  },
  {
    "id": 36154,
    "taskId": 631
  }
]

目标输出JSON

[
  {
    "id": 0,
    "taskStatus": "ERROR",
    "errorMessage": "603|Some ads error occurs: URL needed.",
    "taskId": 630
  },
  {
    "id": 36154,
    "taskStatus": "SUCCESS",
    "errorMessage": null,
    "taskId": 631
  }
]

实现的JOLT转换规范

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "id": "[&1].id",
        "taskId": "[&1].taskId",
        "id": {
          "0": {
            "#ERROR": "[&2].taskStatus",
            "@(2,error_code)": "[&2].errorMessage",
            "@(2,error_desc)": "[&2].errorMessage"
          },
          "*": {
            "#SUCCESS": "[&2].taskStatus",
            "#null": "[&2].errorMessage"
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "errorMessage": "=join('|',@(1,errorMessage))"
      }
    }
  }
]

转换逻辑说明

  • Shift阶段:
    • 先保留原始的id和taskId字段到目标结构中。
    • 通过嵌套匹配id的值:
      • 当id=0时,将taskStatus设为ERROR,同时提取error_code和error_desc暂存到errorMessage数组中。
      • 当id为其他值时,将taskStatus设为SUCCESS,errorMessage设为null。
  • Modify阶段:
    • 对errorMessage执行拼接操作,把数组形式的error_code和error_desc用|连接成字符串;如果是null则保持原值不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:38:13