dataweave - 如何在dataweave中将子数组扁平化为数组
问题描述
我有这个输入
[{
"omsNo": "S001",
"recipient": [{
"name": "name1",
"address": "address1"
},
{
"name": "name2",
"address": "address2"
}
]
}]
我可以知道如何使用 dataweave 得到这个结果吗
[{"omsNo":"S001","name":"name1","address":"address1"},{"omsNo":"S001","name":"name2","address":"address2"}]
解决方案
输入
[{
"omsNo": "S001",
"recipient": [{
"name": "name1",
"address": "address1"
},
{
"name": "name2",
"address": "address2"
}
]
}]
脚本
%dw 2.0
output application/json
---
flatten(payload map ((item, index) ->
(item.recipient map ((itemRecipient, indexRecipient) -> (
({omsNo: item.omsNo} ++ itemRecipient)
))
)))
输出
[
{
"omsNo": "S001",
"name": "name1",
"address": "address1"
},
{
"omsNo": "S001",
"name": "name2",
"address": "address2"
}
]