mule从json数组中删除json元素

mule从json数组中删除json元素,mule,Mule,我有如下的json输入 "products": { "p0": { "productId": "110", "productName": "bag" }, "p1": { "productId": "160", "productName": "shoe" }, "p2": { "productId": "140", productName": "watch" } } 从mule我希望输出如下 [ {

我有如下的json输入

"products": {
  "p0": {
    "productId": "110",
    "productName": "bag"
  },
  "p1": {
    "productId": "160",
    "productName": "shoe"
  },
  "p2": {
    "productId": "140",
    productName": "watch"     
  }  
}
从mule我希望输出如下

[
     {
       "productId": "110",
       "productName": "bag"
     },
     {
       "productId": "160",
       "productName": "shoe"
     },
     {
       "productId": "140",
       "productName": "watch"
     }
]
因为我需要将上述输出格式传递给其他入站用户。 任何人都可以帮助我将输入json转换成上面的输出json


提前感谢所有

您可以使用一些MEL和json转换器实现您想要的:

  <json:json-to-object-transformer
                returnClass="java.util.HashMap"  />

  <set-payload value="#[($.value in payload.products.entrySet())]" />

  <json:object-to-json-transformer />


如果您要进行更复杂的转换,我将使用Groovys JsonBuilder和JsonSlurper或潜在的Datamapper编写一个自定义转换器或脚本转换器。

如果您使用Mule 3.7及更高版本,您可以使用以下组件简单方便地完成转换:-

 <flow name="Testlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/>
    <dw:transform-message doc:name="Transform Message">
      <dw:set-payload><![CDATA[%dw 1.0
        %output application/json
         ---
        payload.products map (
           $  
         )
       ]]></dw:set-payload>
      </dw:transform-message>
</flow>

您能使用DataMapper吗?(仅限Mule企业)