【问题标题】:aggregate data (java.util.Map) format to construct a JSON payloads.聚合数据 (java.util.Map) 格式以构造 JSON 有效负载。
【发布时间】:2015-02-17 19:05:39
【问题描述】:

我将如何聚合数据 (java.util.Map) 格式来构造 JSON 有效负载。 例如 -

"listings": [
   {
       "listingId":"7676762734623",
       "section": "section-100",
       "products": 
       [

           {"row":"A4","seat":"11"}
       ]
   },
  ... 100 more such listings arrays

【问题讨论】:

  • 请告诉我们您的尝试。

标签: mule


【解决方案1】:

您可以在 scripting:component 中使用 groovy 并使用 json 转换器或使用自定义转换器。看这个例子:

<scripting:component doc:name="Groovy">
       <scripting:script engine="Groovy"><![CDATA[
            Map<String, Object> map1 = new HashMap<String, Object>();
            map1.put("fill","none");
            map1.put("stroke","#fff");  
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("content", map1);
            return map;]]></scripting:script>
</scripting:component>
<json:object-to-json-transformer doc:name="Object to JSON"/>

【讨论】:

  • 嗨,我有 {"eventId":"9034782","externalListingId":"12208279","quantity":"2","section":"Upper Box 527","pricePerProduct" :"35.785","products":["{row: 1,seat: 1}","{row: 1,seat: 2}"]} 。我想将列表添加为头元素
  • 我认为这个 json 是 REST 服务的结果。因此,此 json(结果)使用 转换为地图,然后将列表添加为头元素并使用 以获得最终的 json。
  • 我正在使用 JSONSlurper 来实现这一点。但是我不能将变量传递给它。例如 - def s= "new" ; slurper.parseText('s') 报错!!
  • 我认为您可以修改您的问题以获得所有详细信息。你真正想做什么?
  • 如何将变量添加到稍后解析的 sluper 对象 - 例如 def s = "new" def slurper = new JsonSlurper() def result = slurper.parseText('"listings":{"status ":s}') 这是一个错误!我怎样才能附加列表而不是字符串
【解决方案2】:

您可以编写一个 Java 组件,将数据聚合到 Map 并将其转换为 JSON 消息。请通过这个SO link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 2020-06-30
    • 2017-10-23
    • 2022-10-05
    • 1970-01-01
    相关资源
    最近更新 更多