0

我正在尝试使用 Mule 将 JSON 对象转换为 XML 对象Dataweave。下面是输入的 JSON:

{
    "root": {
        "OBJECT1": {
            "PARAM1": "PARAM1VALUE",
            "PARAM2": "PARAM2VALUE"
        },
        "OBJECT2": [{
            "KEY": "PARAMROWKEYVALUE1",
            "VALUE": "PARAMROWVALUEVAL1"
        }, {
            "KEY": "PARAMROWKEYVALUE2",
            "VALUE": "PARAMROWVALUEVAL2"
        }],
        "OBJECT3": {
            "PARAM3": "PARAM3VALUE",
            "PARAM4": "PARAM4VALUE"
        }
    }
}

我想将上面的内容转换为下面的 XML:

<root>
    <node1>PARAM1VALUE PARAM2VALUE</node1>
    <args>
        <paramrow>
            <KEY>PARAMROWKEYVALUE1</KEY>
            <VALUE>PARAMROWVALUEVAL1</VALUE>
        </paramrow>
        <paramrow>
            <KEY>PARAMROWKEYVALUE2</KEY>
            <VALUE>PARAMROWVALUEVAL2</VALUE>
        </paramrow>
    </args>
    <details>
        <PARAM3>PARAM3VALUE</PARAM3>
    </details>
</root>

但是,当我使用这个 JSON 作为示例输入时,它会抛出一个错误,说“验证映射”:

%dw 1.0
%output application/xml
---
payload

如何将这些对象元素映射到 XML?

4

3 回答 3

1

试试下面的 DataWeave

%dw 1.0
%output application/xml
---
{
    root: {
        node1: payload.root.OBJECT1.PARAM1 ++ ' ' ++ payload.root.OBJECT1.PARAM2,
        args: {
            (payload.root.OBJECT2 map {
                paramrow: {
                    KEY: $.KEY,
                    VALUE: $.VALUE
                }
            })
        },
        details: {
            (payload.root.OBJECT3 mapObject {
                '$$': $
            })
        }
    }
}
于 2016-02-29T21:00:12.777 回答
0

@mlucas67,是的,dataweave 表达式有效。

这是我尝试过的另一种方法。

%dw 1.0
%input payload application/json
%output application/xml
---
{
    root: {(payload map {
        node1: $.OBJECT1.PARAM1 ++ ' ' ++ $.OBJECT1.PARAM2,
        args: {
            ($.OBJECT2 map paramrow: $)
        },
        details: 
            PARAM3: $.OBJECT3.PARAM3
    })
    }
}

谢谢大家对这篇文章发表评论。

于 2016-03-02T18:37:55.940 回答
0

考虑使用官方的 MuleSoft Developer 文档。

可以在那里找到很多 DataWeave 示例和完整的参考资料。

https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-examples#json-to-xml https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave -参考文档

于 2016-02-27T22:43:35.453 回答