XML 형식으로 Dataweave JSON-Mule-4
Nov 11 2020
저는 dataweave 변환을 사용하는 초보자입니다. 입력 JSON을 출력 XML 형식으로 변환하기 위해 Mule 4 dataweave 표현식을 작성하려고합니다. JSON 형식의 페이로드가 있으며 특정 XML 형식으로 변환하고 싶습니다. 아래는 출력 XML과 함께 실제 JSON
product-id (XML) 태그는 = JSON의 PBSI__Item__r 태그의 이름 속성에서 가져오고 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,
"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>
답변
SalimKhan Nov 11 2020 at 02:30
이것은 당신이 해결책을 찾는 데 도움이 될 것이고 그것을하는 방법을 배우는 데 도움이 될 것입니다. 나는 완전한 일격 해결책을 제공하지 않았으므로 이것을 시작점으로 사용할 수 있습니다 (거의 80 % 완료).
네임 스페이스를 포함하려면 링크를 따라 가십시오. 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()
}
})}
}
}
}