【发布时间】:2022-01-12 13:00:00
【问题描述】:
在我的例子中,xml 标记值之一是“09031454866678e6”。而转换为json中的对象e则视为科学记数法,转换为“9.031454866678E6”。
我应该如何避免这种转换并确保它被解析为字符串而不是数字?
在代码中:
JSONObject xmlJSONObj = XML.toJSONObject(resp);
resp 是 xml 字符串。
设置值失败
listObject.setObjId(rootJObject.getString("abc"));
setobject方法如下
public void setObjId(String objId) {
this.objId = objId;
}
项目中使用的maven依赖是
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
我希望输出与原始值“09031454866678e6”相同。它不应转换为科学通知。
【问题讨论】:
-
如果您添加示例 XML 以进行解析,以及当前的 JSON 输出,将会很有帮助。如果您为他们提供复制所需的内容并查看当前正在生产的内容,它可以让人们更轻松地获取、试验和建议替代方案。
-
我会比 Mads Hansen 的建议更上一层楼,询问您是否有权访问与您的 XML 文件关联的 XML 模式或 DTD。无论如何,这个 XML 是从 Excel 之类的源中提取数据的结果吗?最后,如果您有权访问模式,请确保数据类型是
xs:decimal而不是xs:double或xs:float,因为最后两个允许以科学计数法保存数字,而xs:decimal不允许。跨度>