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

DataWeave中XML转JSON返回null值,求正确转换方案

问题

需要将以下XML payload转换为指定格式的JSON:

输入XML:

<?xml version="1.0" encoding="UTF-8" ?>
<response>
    <status_code>0</status_code>
    <goods goods_code="A999">
        <cs cs_code="00100L" color_id="8" size_id="3"/>
        <cs cs_code="00100M" color_id="8" size_id="2"/>        
    </goods>
</response>

期望输出JSON:

[
  {
    "cs_code": "00100L",
    "color_id": 8,
    "size_id": 3
  },
  {
    "cs_code": "00100M",
    "color_id": 8,
    "size_id": 2
  }
]

原转换代码payload.response.goods执行后得到错误结果:{"cs": null, "cs": null},需要正确的DataWeave代码。

解决方案

正确的DataWeave代码如下:

%dw 2.0
output application/json
---
payload.response.goods.*cs map (csItem) -> {
    cs_code: csItem.@cs_code,
    color_id: csItem.@color_id as Number,
    size_id: csItem.@size_id as Number
}
代码说明
  • payload.response.goods.*cs:使用*操作符获取<goods>节点下所有重复的<cs>节点,返回一个数组
  • map函数遍历每个<cs>节点,将节点的属性转换为JSON对象的键值对:
    • csItem.@xxx:通过@访问XML节点的属性
    • as Number:将color_id和size_id的字符串值转换为数字类型(如果不需要类型转换可直接去掉该部分)

执行这段代码后,即可得到符合预期的JSON数组格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:57:17