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