首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mule从json数组中删除json元素

mule从json数组中删除json元素
EN

Stack Overflow用户
提问于 2015-05-05 00:56:04
回答 2查看 2K关注 0票数 1

我有如下的json输入

代码语言:javascript
复制
"products": {
  "p0": {
    "productId": "110",
    "productName": "bag"
  },
  "p1": {
    "productId": "160",
    "productName": "shoe"
  },
  "p2": {
    "productId": "140",
    productName": "watch"     
  }  
}

我想要像下面这样的输出

代码语言:javascript
复制
[
     {
       "productId": "110",
       "productName": "bag"
     },
     {
       "productId": "160",
       "productName": "shoe"
     },
     {
       "productId": "140",
       "productName": "watch"
     }
]

因为我需要将上面的输出格式传递给其他入站。谁能帮我把我的输入json转换成上面的输出json。

提前感谢所有人

EN

回答 2

Stack Overflow用户

发布于 2015-05-05 01:27:42

您可以使用一些MEL和json转换器来实现所需的功能:

代码语言:javascript
复制
  <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编写脚本转换器。

票数 0
EN

Stack Overflow用户

发布于 2017-04-08 21:55:46

如果你使用的是Mule 3.7和更高版本,你可以使用dataweave组件简单而容易地做到这一点:

代码语言:javascript
复制
 <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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30035597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档