• MuleSoft json 转 xml


    MuleSoft json 转 xml

    背景

    使用MuleSoft将Json格式的数据转换为xml格式的。

    环境

    mulesoft runtime server: 4.15

    DataWeave : 2.0

    实现

    要转换的Json数据:

    {
        "name": "BeJson",
        "url": "http://www.bejson.com",
        "page": 88,
        "isNonProfit": true,
        "address": {
            "street": "科技园路.",
            "city": "江苏苏州",
            "country": "中国"
        },
        "links": [
            {
                "name": "Google",
                "url": "http://www.google.com"
            },
            {
                "name": "Baidu",
                "url": "http://www.baidu.com"
            },
            {
                "name": "SoSo",
                "url": "http://www.SoSo.com"
            }
        ]
    }

    转出的xml数据:

    <?xml version="1.0" encoding="UTF-8" ?>
    <root>
    <name>BeJson</name>
    <url>http://www.bejson.com</url>
    <page>88</page>
    <isNonProfit>true</isNonProfit>
    <address>
    <street>科技园路.</street>
    <city>江苏苏州</city>
    <country>中国</country>
    </address>
    <link>
    <name>Google</name>
    <url>http://www.google.com</url>
    </link>
    <link>
    <name>Baidu</name>
    <url>http://www.baidu.com</url>
    </link>
    <link>
    <name>SoSo</name>
    <url>http://www.SoSo.com</url>
    </link>
    </root>


    实现:

    <flow name="testFlow1" doc:id="5cbe7b98-09b9-4011-adc8-ef99ea05f7dc" >
    <http:listener doc:name="Listener" doc:id="91e688a4-1771-4822-bfc7-5fe0d2a8bbf8" config-ref="HTTP_Listener_config" path="/" />
    <set-payload value='#[%dw 2.0
    output application/json
    ---
    {
    "name": "BeJson",
    "url": "http://www.bejson.com",
    "page": 88,
    "isNonProfit": true,
    "address": {
    "street": "科技园路.",
    "city": "江苏苏州",
    "country": "中国"
    },
    "links": [
    {
    "name": "Google",
    "url": "http://www.google.com"
    },
    {
    "name": "Baidu",
    "url": "http://www.baidu.com"
    },
    {
    "name": "SoSo",
    "url": "http://www.SoSo.com"
    }
    ]
    }]' doc:name="Set Payload" doc:id="42e6fd53-0eb1-465d-9a99-4d002554023a" />
    <ee:transform doc:name="Transform Message" doc:id="5d62c9f0-21ba-4cea-993f-205810a38338" >
    <ee:message >
    <ee:set-payload ><![CDATA[%dw 2.0
    output application/xml
    ---
    {
    root: {
    'name': payload.name,
    'url': payload.url,
    'page': payload.page,
    'isNonProfit': payload.isNonProfit,
    "address": {
    "street": payload.address.street,
    "city": payload.address.city,
    "country": payload.address.country
    },
    link : payload.links map (item,index) ->{
    "name" : item.name,
    "url" : item.url
    }
    }
    }]]></ee:set-payload>
    </ee:message>
    </ee:transform>
    <logger level="INFO" doc:name="Logger" doc:id="d0e74e13-311f-41a1-bdda-8a17ebddf9ae" message="#[payload]"/>
    </flow>

     

  • 相关阅读:
    jQuery禁用或启用
    ASP.NET MVC一次删除多笔记录
    在你的ASP.NET MVC中使用查找功能
    Get radio selected value
    绑定一个值给radio
    ASP.NET MVC实现权限控制
    为Guid数据类型的属性(property)赋值
    Razor语法中绑定一个值给checkbox
    判断IEnumerable<T>集合中是否包含有T对象
    SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
  • 原文地址:https://www.cnblogs.com/Edward-Wang/p/11177752.html
Copyright © 2020-2023  润新知