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

XML转JSON的Dataweave转换问题:无法读取currency属性

解决XML转JSON时获取orderTotal的currency属性问题

我来帮你搞定这个问题!你现在的核心问题是没正确引用orderTotal节点,也没获取到它的currency属性对吧?先看你原来的DataWeave代码,最后一行Ordertoal:payload.没写完,而且应该在customer的map里用当前节点的$.orderTotal,而不是直接用payload。

修正后的完整DataWeave代码

%dw 2.0
output application/json
---
order: {
    orderid: payload.order.@id,
    customer: payload.order.*customer map {
        Firstname: $.firstName,
        Lastname: $.lastName,
        Address1: $.address1,
        Address2: $.address2,
        City: $.city,
        State: $.state,
        zip: $.zip,
        OrderTotal: {
            amount: $.orderTotal,
            currency: $.orderTotal.@currency
        }
    }
}

关键说明

  • 在DataWeave里,获取XML节点的属性要用@符号,比如$.orderTotal.@currency就能拿到USD这个值
  • 因为orderTotal是customer节点的子节点,所以在map里要使用$.orderTotal来引用当前遍历的customer下的这个节点,而不是直接用payload
  • 我把OrderTotal做成了一个包含amount和currency的对象,这样JSON结构更清晰,如果你想把它们拆成单独的字段,也可以写成:
    OrderTotalAmount: $.orderTotal,
    OrderTotalCurrency: $.orderTotal.@currency
    

这样转换后的JSON就会正确包含currency属性啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:22:47