我正在尝试将没有设置顺序的 JSON 有效负载转换为由 XSD 架构定义的 XML 有效负载。是否有任何 DataWeave 脚本或函数可以动态映射元素以符合该 XSD?本质上,我的 JSON 负载具有与我所拥有的 SOAP 主体相同的结构,但 JSON 请求中的元素顺序可能会乱序。
例如: JSON 输入:
{
"ConcatenateRequest":
{
"string2": "World",
"string1": "Hello"
}
}
转换后的XML输出:
<ConcatenateRequest>
<string1>Hello</string1>
<string2>World</string2>
</ConcatenateRequest>
假设订单/模式的 string1 出现在 string2 之前
这个dataweave包含两种排序方式: 一种是通过值,另一种是通过键。两者都会产生相同的输出,但这是由于所提供的数据一致。
%dw 2.0
output application/json
---
{
"ConcatenateRequestByVlaue": payload.ConcatenateRequest orderBy ((value, key) -> value),
"ConcatenateRequestByKey": payload.ConcatenateRequest orderBy ((value, key) -> key)
}