首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dataweave JSON到XML格式-Mule-4

Dataweave JSON到XML格式-Mule-4
EN

Stack Overflow用户
提问于 2020-11-11 03:00:47
回答 1查看 433关注 0票数 1

我是一个初学者在使用数据编织转换,我正在尝试编写一个Mule 4数据编织表达式来转换输入JSON到输出XML格式,我有一个有效载荷在JSON格式,我想把它转换成一个特定的XML格式,下面是实际的JSON输出XML

产品id( XML )标签来自JSON的PBSI__Item__r标签的name属性,XML中的分配值来自PBSI__Inventory__r标签的name属性

JSON:

代码语言:javascript
复制
[
  {
    "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:

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 03:30:26

这应该会帮助你找到一个解决方案,也可以学习如何做到这一点,我还没有给出一个完整的解决方案,所以你可以把它作为一个起点(几乎完成了80% )。

此外,要包含名称空间,请访问链接https://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-include-xml-namespaces

代码语言:javascript
复制
{
    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()
             }
         })}

    }
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64775112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档