迭代包含JSONObjects mule的ArrayList

时间:2015-03-31 18:59:11

标签: arraylist foreach mule mule-studio

我有一个包含JSONObjects的ArrayList的有效负载的流变量

[{{"SeatFrom":"11","SeatThru":"12","InHandDate":"3/25/15","Quantity":"2"}, {{"SeatFrom":"10","SeatThru":"10","InHandDate":"3/20/15","Quantity":"1"},.....]

我已将此设置为有效负载并以2批次的方式遍历arraylist

<set-payload value="#[flowVars['toUpdate']]" doc:name="Set Payload"/>
    <foreach collection="#[message.payload]" batchSize="2" doc:name="For Each">
        <logger message="#[payload]" level="INFO" doc:name="Logger"/> </for-each>

但是记录器正在打印出对象细节而不是内容。我甚至试图在有效载荷上做一个toString(),但它没有用。我该如何更正我的代码?

1 个答案:

答案 0 :(得分:2)

如果您期望使用json数组,我会将returnClass设置为java.util.HashMap []以返回HashMaps数组:

<flow name="jsontest">
        <poll doc:name="Poll">
            <set-payload value="[{&quot;prop&quot; : &quot;value&quot;},{&quot;prop&quot; : &quot;value&quot;}]" doc:name="Set Payload"/>
        </poll>

        <json:json-to-object-transformer
            returnClass="java.util.HashMap[]" doc:name="JSON to Object"/>

        <foreach doc:name="For Each">
            <logger level="INFO" message="Prop:  #[payload.prop]" doc:name="Logger"/>
        </foreach>
    </flow>