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
相关产品推荐
相关产品推荐

