我使用属性中介将 xml 转换为 json <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
这是有效的,但是当 xml 消息包含像 50103015080000000550022052 这样的数字时,在转换为 json 后,该值更改为 5.010301508E25。
我需要有原始值。知道如何做到这一点吗?
提前致谢。
这是由于 wso2 ESB 服务器可用的自动原语功能造成的。在这里,当发生从 XML JSON 原始类型的转换时,会自动识别。因此,数字 50103015080000000550022052 被标识为一个数字并以科学计数法表示。
EI 服务器中默认启用自动原语功能 [1]。
我们可以通过在以下位置配置synapse.commons.json.output.autoPrimitive=false来全局禁用自动原语功能。这将应用于全局所有原始数据类型。
[EI_HOME]/conf/synapse.properties
此外,我们还可以通过提供正则表达式模式,仅针对一组数据禁用自动原语功能。如果您只想为上述数据集禁用自动原始功能,请在[EI_HOME]/conf/synapse.properties文件中配置以下内容。
synapse.commons.json.output.disableAutoPrimitive.regex=^-?(0|[1-9][0-9]*)(.[0-9]+)?$完成以上配置后请重启服务器。
[1]- https://docs.wso2.com/display/EI650/Working+with+JSON+Message+Payloads
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句