使用dataweave 2.0从有效负载中的数组获取数据


**Input**
{
"result": [
[
{
"ID": "12345",
"Name": "xyz",
},
{
"ID": "12345",
"Title": "abc",
}
]
]
"result": [
[
{
"ID": "67890",
"Name": "pqr",
}
]
]
}

输出

正在尝试从有效负载中的数组中获取数据。输出数据应为xml格式提前感谢

由于嵌套级别的原因,它有点复杂。我需要在末尾添加一个reduce((来从数组转换为对象。我还需要编辑输入,因为它不是一个有效的JSON。

输入:

{
"result": [
[
{
"ID": "12345",
"Name": "xyz"
},
{
"ID": "12345",
"Title": "abc"
}
]
],
"result": [
[
{
"ID": "67890",
"Name": "pqr"
}
]
]
}

脚本:

%dw 2.0
output application/xml
---
{
result: 
payload.*result flatMap 
$ flatMap 
$ flatMap ((item, index) -> 
{ 
root: { 
ID: item.ID, 
Name: item.Name default item.Title
} 
}
) reduce ((item, accumulator) -> accumulator ++ item)    
}

输出:

<?xml version='1.0' encoding='UTF-8'?>
<result>
<root>
<ID>12345</ID>
<Name>xyz</Name>
</root>
<root>
<ID>12345</ID>
<Name>abc</Name>
</root>
<root>
<ID>67890</ID>
<Name>pqr</Name>
</root>
</result>

最新更新