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

如何使用Dataweave 2.0从载荷提取数组值对象并实现XML转JSON

DataWeave 2.0 XML转JSON及数组值提取操作指南

1. XML载荷转换为JSON格式

DataWeave 2.0默认支持XML格式的自动解析,只要输入载荷的MIME类型标记为application/xml,即可直接通过脚本输出JSON:

%dw 2.0
output application/json
---
// 直接输出载荷即可完成基础转换,无需额外处理
payload

如果需要自定义字段映射、格式转换,可以自行指定输出结构,比如提取XML属性、嵌套字段等:

%dw 2.0
output application/json
---
{
    // 提取XML节点属性用@前缀
    orderId: payload.Root.Order.@orderNo,
    createTime: payload.Root.Order.CreateTime as DateTime {format: "yyyy-MM-dd HH:mm:ss"},
    // 提取嵌套节点内容
    contact: payload.Root.Order.Contact.Phone
}

2. 数组内对应值对象提取

XML中的重复同级节点会被DataWeave自动识别为数组,建议用*通配符显式指定读取重复节点为数组,避免单个节点时被解析为对象的异常:

常用提取场景示例

(1)获取所有重复节点组成的数组

%dw 2.0
output application/json
---
// 提取所有Goods节点组成数组
payload.Root.Order.GoodsList.*Goods

(2)筛选符合条件的数组对象

%dw 2.0
output application/json
import * from dw::core::Arrays
---
// 筛选商品分类为"数码"的所有对象
payload.Root.Order.GoodsList.*Goods filter ((item) -> item.category == "数码")

(3)提取数组指定位置的对象

%dw 2.0
output application/json
---
// 提取数组第一个商品对象
payload.Root.Order.GoodsList.*Goods[0]

参考截图

XML输入载荷示例
提取结果示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 17:36:07