在wso2 esb中,如何获取单个数字(整数)值

在wso2 esb中,如何获取单个数字(整数)值,wso2,wso2esb,Wso2,Wso2esb,在wso2 ESB中,调用一个端点后,我得到的响应是numberx:78,带有头application/json,如果不处理响应,如果我按out顺序发送,它工作正常,我将得到相同的响应。但如果我在中间包含任何用于处理的中介,它将抛出异常,比如无法保存JSON负载。找到无效的输入流。单个字符串或数字在某些情况下无效,因此可能会引发异常,但此错误已在wso2 EI 6.2中解决 现在我可以处理响应了,但是如果我使用脚本中介器来获取该值,它会显示{}。如果我使用json eval$。然后我也无法获得值

在wso2 ESB中,调用一个端点后,我得到的响应是numberx:78,带有头application/json,如果不处理响应,如果我按out顺序发送,它工作正常,我将得到相同的响应。但如果我在中间包含任何用于处理的中介,它将抛出异常,比如无法保存JSON负载。找到无效的输入流。单个字符串或数字在某些情况下无效,因此可能会引发异常,但此错误已在wso2 EI 6.2中解决

现在我可以处理响应了,但是如果我使用脚本中介器来获取该值,它会显示{}。如果我使用json eval$。然后我也无法获得值,同样使用xpath我也无法获得值


因此,如何获取该响应如果您确定响应只包含一个带有application/json的content-type头的数字,那么如何使用script mediator或json-path在wso2 ei中获取数字值以供进一步处理。

。您可以按如下方式将值带到属性

<property name="RESPONSE_NUMBER" expression="//jsonValue" scope="default" type="INTEGER"/>
$ctx:RESPONSE_NUMBER
下面是一个示例API,它演示了如何获取响应值并在中介流中使用它

<api xmlns="http://ws.apache.org/ns/synapse" name="SampleAPI" context="/getNumber">
   <resource methods="GET">
      <inSequence>
         <send>
            <endpoint>
               <http method="GET" uri-template="http://www.mocky.io/v2/5b02cc2c3000006600cee384"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <property name="RESPONSE_NUMBER" expression="//jsonValue" scope="default" type="INTEGER"/>
         <payloadFactory media-type="json">
            <format>{"Id": $1}</format>
            <args>
               <arg evaluator="xml" expression="$ctx:RESPONSE_NUMBER"/>
            </args>
         </payloadFactory>
         <send/>
      </outSequence>
   </resource>
</api>
curl -v http://localhost:8280/getNumber