wso2 - 将 xml 转换为 json 的 WSO2 ESB 问题
问题描述
我使用属性调解器将 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
推荐阅读
- javascript - HeadlessUI Tabs 活动选项卡在刷新后恢复为 0
- docker - Airflow DockerOperator 挂载导致基于 docker-compose 的 Airflow 设置出错
- sql-server - 使用查询或存储过程将文本文件导入 SQL Server 表
- powerbi - PowerBI Pro Contoso Sales for PowerBI 内存不足错误
- sms - 在 Dynamic 365 Marketing 中未使用 TeleSign 发送 SMS
- merge - Neo4j 遇到问题的初学者
- c# - 我制作的应用程序可以从 .mdf 文件中读取数据,但无法从 .mdf 文件中写入/更新/删除数据,谁能帮帮我?
- java - 如何在 java 15 文本块中保留尾随空格
- oracle - 使用 BLOB 数据类型 Vuejs 将输入图像文件上传到数据库
- github - 从 Terraform 云功能连接到 Enterprise GitHub