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

如何用JOLT提取动态键数组中的消息并拼接为错误信息

JOLT处理动态键下的错误消息拼接

需求

从WebService返回的JSON中,提取data字段内所有动态键对应的数组消息,将这些消息拼接为单个错误字符串;同时保留顶层message字段到body.info_message。

原始返回数据

{
  "success": false,
  "message": "Eroare validare date",
  "data": {
    "driver.0.name": [
      "Trebuie să menționați nume/denumire pentru șofer"
    ],
    "driver.1.name": [
      "Trebuie să menționați nume/denumire pentru șofer"
    ],
    "driver.1tin": [
      "CNP/CUI invalid pentru șofer"
    ],
    "vehicle.card": [
      "Serie CIV invalidă pentru vehiculul asigurat"
    ]
  }
}

原JOLT Spec问题

原Spec中使用#1会生成固定值,无法提取数组内的实际错误消息,且层级映射逻辑需要调整。

正确JOLT转换方案

[
  {
    "operation": "shift",
    "spec": {
      "message": "body.info_message",
      "data": {
        "*": {
          "*": "body.error_message[]"
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "body": {
        "error_message": "=join(', ', @(1,error_message))"
      }
    }
  }
]

转换说明

  1. Shift阶段:
    • 直接映射顶层message到body.info_message
    • 用*匹配data下所有动态键,再通过第二个*遍历每个键对应的数组元素,将所有元素收集到body.error_message数组中
  2. Modify阶段:
    • 使用join函数将error_message数组的元素用, 拼接为单个字符串

转换结果

{
  "body": {
    "info_message": "Eroare validare date",
    "error_message": "Trebuie să menționați nume/denumire pentru șofer, Trebuie să menționați nume/denumire pentru șofer, CNP/CUI invalid pentru șofer, Serie CIV invalidă pentru vehiculul asigurat"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:35:28