[英]XML to JSON Dataweave Transformatiion issue converting attribute values
我正在尝试将 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>
数据编织代码:
%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)
} )
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.