【发布时间】:2021-02-22 18:11:19
【问题描述】:
我是使用 dataweave 转换的初学者,我正在尝试编写 Mule 4 dataweave 表达式来将输入 JSON 转换为输出 XML 格式,我有一个 JSON 格式的有效负载,我想将其转换为特定的 XML 格式,下面是实际的 JSON 以及输出 XML
product-id(XML) 标签将来自 = name 属性的 PCSI__Item__r 标签的 JSON XML中的分配值来自PBSI__Inventory__r标签的name属性
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,
"type": "PBSI__PBSI_Item__c",
"Name": "116066"
},
"PBSI__Inventory__r": [
{
"Id": null,
"type": "PBSI__PBSI_Inventory__c",
"PBSI__Real_Quantity__c": "1.0"
}
],
"PBSI__Location__r": {
"Id": null,
"type": "PBSI__PBSI_Location__c",
"Name": "OA011"
},
"Id": null,
"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>
【问题讨论】:
-
在尝试编写 DataWeave 脚本之前,您必须提供将 JSON 转换为 XML 的规则。每个元素和属性应该来自哪里?
-
谢谢aled,我已经添加了