我将属性类型设置为字符串如下:
<property name="result" scope="default" type="STRING" value="0"/>
<payloadFactory media-type="xml">
<format>
<jsonObject>
<result>$1</result>
</jsonObject>
</format>
<args>
<arg evaluator="xml" expression="$ctx:result"/>
</args>
</payloadFactory>
但是响应结果是整数。发生了什么?
{
"result": 0
}
答案 0 :(得分:1)
属性值不是响应内容。你是如何建立自己的回应者的?可能是你使用payloadFactory?
您可以在有效负载https://www.yenlo.com/blog/wso2torial-json-magic-in-wso2-esb-5.0.0和wso2 esb - problems with XML to JSON conversion
中找到有关json类型的内容答案 1 :(得分:0)
您已指定您的payloadFactory使用xml。我稍后假设你将xml转换为json。
在xml中,没有&#34; string&#34;的概念。 vs&#34;整数&#34; - 除非你使用xsd&#39; s - 所以当ESB / EI将xml转换为json时,如果它看到一个数字,它会将值转换为整数,如果它没有,则将其转换为字符串。
XML - &gt; JSON转换不是类型安全的。你能不能使用json payloadFactory:
<payloadFactory media-type="json">
<format>{ "result": "$1" }</format>
<args>
<arg evaluator="xml" expression="$ctx:result"/>
</args>
</payloadFactory>