2017-03-10 4 views
1

jsonペイロードから各オブジェクトを抽出したい:このマップから各オブジェクトをスプリッタまたはコレクションスプリッタに渡す必要があります。私はここでforeachスコープを使用することはできません。Json Arrayから個々のオブジェクトを取得するためのMule式

[ 
    { 
     "Name": null, 
     "Key": "4", 
     "Header": { 
     "Id": "14" 
     } 
    }, 
    { 
     "Name": null, 
     "Key": "5", 
     "Header": { 
     "Id": "15" 
     } 
    } 
] 

答えて

0

配列からオブジェクト全体を取得するには、単純な[payload]を使用できます。これは各スコープと同じように注意します。

0

JSON要素を解析してアクセスする場合は、 **<json:json-to-object-transformer/>**がこのトリックを行う方法です。 java.util.HashMap or java.util.List or java.util.Map は、JSONデータの種類によって異なります。 使用することもできjava.lang.Object

+0

:私は使用していない推奨するでしょう[JSONデータ/フィールド] –

+0

を'#[json:data/field]'の式です。 JsonPath式評価ツールは推奨されなくなりました。さらに詳しい情報これについては、https://docs.mulesoft.com/mule-user-guide/v/3.8/json-module-referenceを参照してください。 –

+0

私はまだ例外を取得しています。 java.util.Listまたはjava.lang.Objectを使用しています。 org.mule.api.transformer.TransformerMessagingException:変換されるオブジェクトの型が「SimpleDataType {type = java.lang.String、mimeType = '*/*'、encoding = 'null'}」ですが、期待される戻り値の型は"SimpleDataType {type = java.util.List、mimeType = 'application/json'、encoding = 'null'}"です。 (org.mule.api.transformer.TransformerMessagingException) – user4338724

0

これを行うための複数の方法があります:ビジェイで述べたように は1)、任意のコレクション型などへの入力JSONをマップするためにJSONからオブジェクトへの変圧器を使用するには、

<json:json-to-object-transformer returnClass="java.util.List" doc:name="JSON to Object"/> 
    <collection-splitter doc:name="Collection Splitter"/> 

2)入力JSONデータからコレクションを取得するにはdataweaveを使用します。

<dw:transform-message doc:name="Transform Message"> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/java 
--- 
payload 
]]></dw:set-payload> 
     </dw:transform-message> 
<collection-splitter doc:name="Collection Splitter"/> 

ます。また、#を使用することができ
+0

推奨されているようにデータウェーブスクリプトを使用した場合の例外ルート例外スタックトレース: java.lang.IllegalArgumentException:オブジェクト "com.mulesoft.weave.reader.ByteArraySeekableStream"の型が正しくありません。 "{interface java.lang.Iterable、interface java.util.Iterator、interface org.mule.routing.MessageSequence、interface java.util.Collection}"タイプでなければなりません。 " \t at org.mule.util.collection.EventToMessageSequenceSplittingStrategy .split(EventToMessageSequenceSplittingStrategy.java:65) – user4338724

+0

データウェーブの入力タイプは何ですか?それはjsonか他の何かですか? – user02041988

関連する問題