【问题标题】:XML to JSON object converting string to scientific notationXML 到 JSON 对象将字符串转换为科学记数法
【发布时间】: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:doublexs:float,因为最后两个允许以科学计数法保存数字,而 xs:decimal 不允许。跨度>

标签: java json xml maven


【解决方案1】:

您是否尝试过在第二个参数设置为 true 的情况下调用 toJSONObject(java.lang.String string, boolean keepStrings)

【讨论】:

  • 这正是我想要的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
相关资源
最近更新 更多