在WSO2 ESB中将输入XML转换为JSON格式

时间:2016-01-11 10:23:02

标签: json wso2esb

我想在WSO2 ESB中将输入XML转换为JSON格式。 我尝试过使用属性介体,但它无法正常工作,

<property name="messageType" value="application/json" scope="axis2" type="STRING"></property>
<property name="Content-Type" value="application/json" scope="transport" type="STRING"></property>

3 个答案:

答案 0 :(得分:1)

尝试此配置:

<inSequence>
...
</inSequence>
<outSequence>
  <property name="messageType" value="application/json" scope="axis2"></property>
  <respond/>
</outSequence>

答案 1 :(得分:0)

您只需要添加格式化程序(由messageType属性定义)来格式化消息。

<property name="messageType" value="application/json" scope="axis2" type="STRING"></property>

Content-Type属性用于将传入消息构建为SOAP格式,该格式在ESB中使用。如果传入消息是XML,则可以使用以下构建器。添加此属性不是强制性的,如果“Content-Type”与传入消息头一起发送,ESB会自动对其进行拍照并构建消息。

<property name="Content-Type" value="application/xml" scope="transport" type="STRING"></property>

还要确保在axis2.xml文件中启用了“application / json”消息格式化程序。这可以在repository / conf / axis2文件夹中找到。

答案 2 :(得分:0)

假设你的xml输入是,

 <name>abc</name>
<id>123</id> 

然后您需要将其转换为Json格式,

{ 
  "name" : "abc",
   "id" : "123"
} 

您可以使用PayloadFactory介体将XML转换为JSON格式

 <payloadFactory media-type="json">
       <format>
           {
        "name" : "$1",
        "id" : "$2"
           }
       </format>
        <args>
           <arg evaluator="xml" expression="//name"/>
           <arg evaluator="xml" expression="//id"/>
        </args>
     </payloadFactory> 

希望这会有所帮助!!