Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何在WSO2 ESB中获取响应主体_Json_Wso2esb_Wso2ei - Fatal编程技术网

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

Json 如何在WSO2 ESB中获取响应主体,json,wso2esb,wso2ei,Json,Wso2esb,Wso2ei,WSO2 ESB中的响应格式如下: <testresponse xmlns="http://abcd/service"> <cookie>yummy</cookie> <product>YM11</product> <place>US</place> </testresponse > 您可以使用payloadFactory <payloadFactory media-

WSO2 ESB中的响应格式如下:

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

您可以使用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>

$1
$2
$3
)

如果不需要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>

{
“饼干”:$1,
“产品”:$2,
“地点”:$3
}

yummy YM11 US无效,您需要一个“容器”我已经更改了有效负载,但响应是相同的。。。。因为响应元素无法删除。如果我删除response元素,有效负载将如下更改,产品和位置将删除:$1这正是我最初回答的内容,因为您的xml无效,您无法实现这一点,您需要一个封闭元素。我知道您的意思是响应元素必须包含在payloadFactory中。但我希望我可以删除响应元素…你对WSO2有什么想法吗?因为我想删除xml响应元素并切换json格式,下面是我的示例:原始格式:{“response”:{“cookie”:yummy,“product”:“YM11”,“place”:US,}}我希望我可以得到这样的json格式:{“cookie”:yummy,“product”:“YM11”,“place”:US,}谢谢。那么我明白你想要什么了,你应该直接解释一下。。。我已经用两种解决方案编辑了我的答案,它们可以满足您的需要
<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>
<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>