【问题标题】:How to concatenate two JSON responses in wso2 esb如何在 wso2 esb 中连接两个 JSON 响应
【发布时间】:2016-05-12 12:09:09
【问题描述】:

我需要连接两个 json 以将其转换为一个有效的 json 是:

   {

    "first": true,
    "second": {
        "name": "manoj",
        "age": "45"
    },
    "third": {
        "fourth": [{

                "class": "test12",
                "salary": "123456"
            },

            {
                "class": "test23",
                "salary": "15678"
            }
        ],
        "fifth": "hello"
    }
   }

 [{
        "item1": "123456",
        "item2": "5678"

    },
  {
        "item1": "8976",
        "item2": "abcd"

    }]

是否可以在不使用任何 jquery 的情况下连接这两者。我需要一些与 wso2 esb 代码相关的东西。我尝试使用丰富和其他调解器,但到目前为止没有运气。

【问题讨论】:

  • 我认为您正在尝试服务链用例,在这种情况下,您可以使用 PayloadFactory 调解器来完成您的任务。更多信息请参考docs.wso2.com/display/ESB490/PayloadFactory+Mediator
  • @KalpaWelivitigoda 这就是我正在做的。我正在使用有效负载工厂进行服务链接,但我必须添加这两个 json 响应,然后再将其作为响应发送回。知道如何连接这两个 json 响应。

标签: json wso2 esb


【解决方案1】:

您可以使用 WSO2 ESB Payload Factory 中介连接 json,如下所示,

<api xmlns="http://ws.apache.org/ns/synapse" name="ConcatAPI" context="/concat">
<resource methods="GET">
  <inSequence>
     <call>
        <endpoint>
           <http method="GET" uri-template="http://www.mocky.io/v2/56b2d88c13000057518945d4"/>
        </endpoint>
     </call>
     <enrich>
        <source type="body" clone="true"/>
        <target type="property" property="first-json"/>
     </enrich>
     <log level="custom">
        <property name="First json" expression="get-property('first-json')"/>
     </log>
     <call>
        <endpoint>
           <http method="GET" uri-template="http://www.mocky.io/v2/56b2d87d1300007c518945d3"/>
        </endpoint>
     </call>
     <payloadFactory media-type="xml">
        <format>
           <completeJson xmlns="">
              <firstjson>$1</firstjson>
              <secondjson>$2</secondjson>
           </completeJson>
        </format>
        <args>
           <arg evaluator="xml" expression="get-property('first-json')"/>
           <arg evaluator="xml" expression="$body"/>
        </args>
     </payloadFactory>
     <property name="messageType" value="application/json" scope="axis2"/>
     <send/>
  </inSequence>
  <outSequence/>
  <faultSequence/>
</resource>
</api>

请注意,我已从 mocky.io 网站的模拟服务中检索到您的 json。

谢谢。

【讨论】:

  • 嘿,它正在工作。太感谢了。你节省了我很多时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
相关资源
最近更新 更多