Mule 如何使用Dataweave从2个不同的json消息创建json消息

Mule 如何使用Dataweave从2个不同的json消息创建json消息,mule,anypoint-studio,dataweave,Mule,Anypoint Studio,Dataweave,我想从2条不同的json消息创建一条json消息。两条输入消息都来自流变量。如何使用Dataweave实现这一点 信息1: [ { "userId": 11, "name": "ABC", "age": 30 }, { "userId": 44, "name": "XYZ", "age": 30 } ] 信息2: 预期产出:

我想从2条不同的json消息创建一条json消息。两条输入消息都来自流变量。如何使用Dataweave实现这一点

信息1:

    [

     {
         "userId": 11,
         "name": "ABC",
         "age": 30
     },

     {
         "userId": 44,
         "name": "XYZ",
         "age": 30
     }

     ]
信息2:

预期产出:

提前谢谢大家,,
Nitesh

参考文章。似乎是您用例的完美解决方案。

您可以使用查找而不是过滤器,因为使用过滤器是性能开销。 试试这个

其中,有效负载是message1,flowVars.data是message2

附言:我使用了$.userId++作为hashmap的字符串格式的键,有些数字键与weave hashmap不兼容

也指

希望这有帮助

 [

 {
     "userId": 11,
     "Address": "BLR"
 },
 {
     "userId": 44,
     "Address": "CCU"
 }

 ]
[

 {
     "userId": 11,
     "name": "ABC",
     "Address": "BLR"
 },
 {
     "userId": 44,
     "name": "XYZ",
     "Address": "CCU"
 }

 ]
%dw 1.0
%output application/json
 %var adressLookup = {(  flowVars.data map  {
    ($.userId ++ "") : $
 })}
 ---
payload map {
    userId : $.userId,
    name : $.name,
    Address : adressLookup[$.userId ++ ""].Address
}