将 xml 转换为 json 的 WSO2 ESB 问题
WSO2 ESB problem with convert xml to json
我使用 属性 调解器将 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
我使用 属性 调解器将 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