如何解决XML到JSON Dataweave Transformatiion转换属性值的问题
我正在尝试将XML转换为JSON,但无法读取以下最后一个货币属性,应该如何显示为JSON
><order id="2345">
<customer>
<firstName>ronal</firstName>
<lastName>kal</lastName>
<address1>321 Main St.</address1>
<address2>PO Box [526]</address2>
<city>Atlanta</city>
<state>IL</state>
<zip>7562</zip>
<orderTotal currency="USD">635.88</orderTotal>
</customer>
**
order:{
orderid:payload.order.@id,customer:payload.order.*customer map
{
Firstname:$.firstName,Lastname:$.lastName,Address1:$.address1,Address2:$.address2,City:$.city,State:$.state,zip:$.zip,Ordertoal:payload.
}
解决方法
这是您要寻找的吗?
%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,Ordertoal:$.orderTotal.@currency
}
}
,
您可以尝试以下方法:
输入:
<order id="2345">
<customer>
<firstName>ronal</firstName>
<lastName>kal</lastName>
<address1>321 Main St.</address1>
<address2>PO Box [526]</address2>
<city>Atlanta</city>
<state>IL</state>
<zip>7562</zip>
<orderTotal currency="USD">635.88</orderTotal>
</customer>
</order>
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":$.orderTotal ++ " " ++ ($.orderTotal.@currency)
}
}
输出:
{
"order": {
"orderid": "2345","customer": [
{
"Firstname": "ronal","Lastname": "kal","Address1": "321 Main St.","Address2": "PO Box [526]","City": "Atlanta","State": "IL","zip": "7562","OrderTotal": "635.88 USD"
}
]
}
}
但是对于干净的代码,我更喜欢这样写:
%dw 2.0
output application/json
---
order:{
orderid:payload.order.@id,customer:payload.order.*customer map ((item,index) ->{
"Firstname":item.firstName,"Lastname":item.lastName,"Address1":item.address1,"Address2":item.address2,"City":item.city,"State":item.state,"zip":item.zip,"OrderTotal":item.orderTotal ++ " " ++ (item.orderTotal.@currency)
} )
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。