Mule Expression从Json数组中获取单个对象

时间:2017-03-10 03:09:13

标签: mule mule-studio mule-component mule-el

想从我的json有效负载中提取每个对象,如下所示:需要将每个对象从此映射传递到拆分器或集合拆分器。我不能在这里使用foreach范围。

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

3 个答案:

答案 0 :(得分:0)

要从数组中获取整个对象,我们可以使用简单的#[payload],这样就可以像每个范围一样。

答案 1 :(得分:0)

如果要解析并访问JSON元素 **<json:json-to-object-transformer/>**是实现这一诀窍的方法。 的 java.util.HashMap or java.util.List or java.util.Map 取决于您的JSON数据的类型。 您也可以使用 java.lang.Object

答案 2 :(得分:0)

有多种方法可以做到这一点: 1)如Vijay所述,使用json-to-object转换器将输入json映射到任何Collection类型,例如

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

2)使用dataweave从输入的json数据中获取Collection:

<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"/>