如何在WSO2 ESB中获取响应主体

时间:2017-11-02 11:00:51

标签: json wso2esb wso2ei

WSO2 ESB中的响应格式:

<testresponse xmlns="http://abcd/service">
    <cookie>yummy</cookie>
    <product>YM11</product>
    <place>US</place>
</testresponse > 

但我只想要身体,我该怎么办?

 <cookie>yummy</cookie>
 <product>YM11</product>
 <place>US</place>

目标是在JSON对象中转换xml,如下所示

{
 "cookie": "yummy",
 "product": "YM11",
 "place": "US"
}

1 个答案:

答案 0 :(得分:0)

您可以使用payloadFactory

<payloadFactory media-type="xml">
  <format>
    <jsonObject>
      <cookie>$1</cookie>
      <product>$2</product>
      <place>$3</place>
    </jsonObject>
  </format>
  <args>
    <arg evaluator="xml" expression="//cookie"/>
    <arg evaluator="xml" expression="//product"/>
    <arg evaluator="xml" expression="//place"/>
  </args>
</payloadFactory>

但是如前所述,你需要一个封闭元素,否则你的xml将无法生效。如果目标是输出Json,则应将此元素称为jsonObject(在此处查找更多信息:https://docs.wso2.com/display/EI600/JSON+Support)。

如果您不需要XML,最好的方法是直接构建您的json对象

<payloadFactory media-type="json">
  <format>
    {
      "cookie": $1,
      "product": $2,
      "place": $3
    }
  </format>
  <args>
    <arg evaluator="xml" expression="//cookie"/>
    <arg evaluator="xml" expression="//product"/>
    <arg evaluator="xml" expression="//place"/>
  </args>
</payloadFactory>