如何解决Dataweave JSON转换为XML格式-Mule-4
我是使用dataweave转换的初学者,我正在尝试编写Mule 4 dataweave表达式以将输入JSON转换为输出XML格式,我有JSON格式的有效负载,并且想将其转换为特定的XML格式,下面是实际的JSON以及输出XML
product-id(XML)标签将来自= JSON的PBSI__Item__r标签的= name属性 XML中的分配值来自PBSI__Inventory__r标签的名称属性
JSON:
[
{
"PBSI__Item__r": {
"Id": null,"type": "PBSI__PBSI_Item__c","Name": "116065"
},"PBSI__Inventory__r": [
{
"Id": null,"type": "PBSI__PBSI_Inventory__c","PBSI__Real_Quantity__c": "13.0"
}
],"PBSI__Location__r": {
"Id": null,"type": "PBSI__PBSI_Location__c","Name": "OB043"
},"Id": null,"type": "PBSI__Lot__c"
},{
"PBSI__Item__r": {
"Id": null,"Name": "116066"
},"PBSI__Real_Quantity__c": "1.0"
}
],"Name": "OA011"
},"type": "PBSI__Lot__c"
}
]
输出XML:
<?xml version='1.0' encoding='UTF-8'?>
<inventory xmlns="http://www.demandware.com/xml/impex/inventory/2007-05-31">
<inventory-list>
<header list-id="Hastens_Inventory">
<default-instock>false</default-instock>
<use-bundle-inventory-only>false</use-bundle-inventory-only>
</header>
<records>
<record product-id="116065">
<allocation>13</allocation>
<allocation-timestamp>2019-04-24T07:09:51.954Z</allocation-timestamp>
</record>
<record product-id="116066">
<allocation>1</allocation>
<allocation-timestamp>2019-04-24T07:09:51.965Z</allocation-timestamp>
</record>
</records>
</inventory-list>
</inventory>
解决方法
这应该可以帮助您找到解决方案并学习实现方法,但我没有给出完整的解决方案,因此您可以以此为起点(几乎完成了80%)。 / p>
要包含名称空间,请点击链接https://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-include-xml-namespaces
{
inventory:{
inventorylist: {
header @("list-id":"Hastens_Inventory"):
{
"default-instock":false,"use-bundle-inventory-only":false
},records: {(payload map
{
record @("product-id": $.PBSI__Item__r.Name): {
allocation: $.PBSI__Inventory__r[0].PBSI__Real_Quantity__c,"allocation-timestamp": now()
}
})}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。