mule从json数组中删除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我希望输出如下 [ {
"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企业)