2017-01-31 10 views
1

私は2つの要素を持つJSON配列を持っています。私はそれらを1つのjsonに結合したいと思います。私はMuleでそれをどうやってすることができますか?JSONをMuleでマージする

オリジナルペイロード:

[{ 
    "Response1": { 
     "lines": [{ 
      "lineIdentifier": 9, 
      "result1": null 
     }] 
    } 
}, { 
    "Response2": { 
     "lines": [{ 
      "lineIdentifier": 10, 
      "result2": ".0225" 
     }] 
    } 
}] 

予想されるペイロード:

{ 
    "Response1": { 
     "lines": [{ 
      "lineIdentifier": 9, 
      "result1": null 
     }] 
    }, 
    "Response2": { 
     "lines": [{ 
      "lineIdentifier": 10, 
      "result2": ".0225" 
     }] 
    } 
} 

答えて

2

それはdataweaveを使用して行うことができ、ここでそれを達成するためのロジックがあります。

%dw 1.0 
%var input=[{ 
    "Response1": { 
     "lines": [{ 
      "lineIdentifier": 9, 
      "result1": null 
     }] 
    } 
}, { 
    "Response2": { 
     "lines": [{ 
      "lineIdentifier": 10, 
      "result2": ".0225" 
     }] 
    } 
}] 
%output application/json 
--- 
{ 
    "Response1":input[0].Response1, 
    "Response2": input[1].Response2 
} 
+0

ありがとう@Senthil c、 – ROA

0

を使用すると、オブジェクトの数について気にする必要がないようにreduce演算子を使用する唯一の

%dw 1.0 
%output application/json 
--- 
{ 
    "Response1" : { 
     (payload.Response1.lines map ((item, indexOfItem) -> { 
      "lines": item 
     }) 
    ) 
    }, 
    "Response2" : { 
     (payload.Response2.lines map ((item, indexOfItem) -> { 
      "lines": item 
     }) 
    ) 
    } 
} 
0
var arr1 = ['a', 'b', 'c']; 
var arr2 = ['d', 'e', 'f']; 

var arr3 = arr1.concat(arr2); 
1

簡単な方法をdataweave使用して行うことができます。コード

%dw 1.0 
%output application/json 
--- 
payload reduce ((value, accumulator = {}) -> accumulator ++ value) 

HTH

1

申し訳ありませんが、次の試してください、私はあなたが間違った目標に向かっていると信じてください。 シンプルな例を提供して、簡単な答えに誤解を与えます。

は、それが私のために見えるように私はあなたの質問を言い換えてみましょう:

我々が持っている配列[a,b,c,...x,y,z]

私たちは、あなたが唯一の2アイテムを提供される一つのオブジェクト{a1:a, b2:b, c3:c,... z26:z }

にそれをマージ必要がありますが、それはアイデアです。あなたが本当にこれらの特定のアイテムだけを望むなら、他の答えのどれかを使用してください。私が正しいとあなたは一般的にそれをしたい場合はしかし、その後も、それは多くの方法で行うことができるが、このソリューションのための短所を考慮してください。

  • コードはA1、B2、X26
  • のような実際のキーのために「harcdoded」されます
  • モジュール構造は、キーに「ハードワイヤード」になりますので、データ
  • にソリューション全体を一つの特定のデータのために、「hardprinted」になるよう

を設定し、それはほとんど依存していない場合、一般的に、これは良い解決策ではありませんあなたのデータに

関連する問題