我想从2个不同的Json消息创建一个json消息。两个输入消息都来自流量变量。如何使用Dataweave完成。
消息1:
[
{
"userId": 11,
"name": "ABC",
"age": 30
},
{
"userId": 44,
"name": "XYZ",
"age": 30
}
]
消息2:
[
{
"userId": 11,
"Address": "BLR"
},
{
"userId": 44,
"Address": "CCU"
}
]
预期输出:
[
{
"userId": 11,
"name": "ABC",
"Address": "BLR"
},
{
"userId": 44,
"name": "XYZ",
"Address": "CCU"
}
]
提前谢谢你, Nitesh
答案 0 :(得分:0)
参阅this文章。似乎是您用例的完美解决方案。
答案 1 :(得分:0)
您可以使用lookup而不是filter,因为使用filter是性能开销。 试试这个
%dw 1.0
%output application/json
%var adressLookup = {( flowVars.data map {
($.userId ++ "") : $
})}
---
payload map {
userId : $.userId,
name : $.name,
Address : adressLookup[$.userId ++ ""].Address
}
其中payload是message1,flowVars.data是message2
P.S:我使用$.userId ++ ""
作为hashmap的字符串格式的关键字,有些数字键不能用于编织hashmap。
也请参考Merge two json payload with dataweave
希望这有帮助。