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

如何使用DataWeave将字符串中转义的JSON数组转为实际数组

DataWeave 转义JSON字符串转标准JSON数组实现方案

问题场景

输入JSON中部分字段值为转义后的JSON字符串,双引号前带\转义符,整体为字符串类型,无法直接按JSON结构读取内部字段,需要将这类字符串转换为原生JSON数组/对象结构。
本次使用的测试输入数据如下:

{
     "values": [
       {
       "start": "{\"value\":[{\"classifier\":\"data1\",\"params\":\"1234\",\"year\":\"1930\",\"month\":null,\"day\":null,\"source\":null}],\"primary\":true,\"param4\":\"1930\"}"
       },
       {
       "end": "{\"value\":[{\"classifier\":\"data1\",\"params\":\"1234\",\"year\":\"2014\",\"month\":null,\"day\":null,\"source\":null}],\"primary\":true,\"param4\":\"2014\"}"
       }
     ]
}

转换代码(DataWeave 2.x 通用,适配Mule 4及以上版本)

%dw 2.0
output application/json
---
{
  values: payload.values map (currentItem) -> 
    currentItem mapObject ((fieldValue, fieldKey) -> {
      (fieldKey): read(fieldValue, "application/json")
    })
}

实现逻辑说明

  • 核心使用DataWeave内置的read()函数完成解析,传入待处理的转义字符串和目标格式application/json即可,函数会自动识别并处理所有JSON转义符,不需要手动编写正则替换反斜杠。
  • 遍历values数组下的每一个对象,通过mapObject动态遍历对象内的所有键值对做解析,无需硬编码start/end这类字段名,后续同结构新增字段也可以自动适配。

转换后输出结果

{
  "values": [
    {
      "start": {
        "value": [
          {
            "classifier": "data1",
            "params": "1234",
            "year": "1930",
            "month": null,
            "day": null,
            "source": null
          }
        ],
        "primary": true,
        "param4": "1930"
      }
    },
    {
      "end": {
        "value": [
          {
            "classifier": "data1",
            "params": "1234",
            "year": "2014",
            "month": null,
            "day": null,
            "source": null
          }
        ],
        "primary": true,
        "param4": "2014"
      }
    }
  ]
}

避坑提示

  • 不要使用replace "\\" with ""这类手动替换转义符的方案,一旦原字符串内容本身包含合法转义字符(比如业务字段值里自带反斜杠、转义双引号),替换操作会破坏合法JSON结构,导致后续解析失败。
  • 如果待解析的字符串可能存在不符合JSON规范的脏数据,可以给read()函数加容错配置,比如read(fieldValue, "application/json", {default: {}}),解析失败时返回默认空对象,避免整个转换流程报错中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:57:11