如何在Java中将XML转换为JSON并避免解析器尝试将String解析为数
发布时间:2020-12-15 02:10:23 所属栏目:Java 来源:网络整理
导读:我正在使用org.json. XML库来解析 XML到 JSON. http://www.json.org/javadoc/org/json/XML.html 在我的XML文档中,有一个使用[0-9] [a-z]随机生成的ID字段.它应该是一个字符串.一切正常,直到有这个不幸的ID 123456789e1234恰好是一个数字的科学记数. 这是一段
我正在使用org.json.
XML库来解析
XML到
JSON.
http://www.json.org/javadoc/org/json/XML.html
在我的XML文档中,有一个使用[0-9] [a-z]随机生成的ID字段.它应该是一个字符串.一切正常,直到有这个不幸的ID 123456789e1234恰好是一个数字的科学记数. public class XmlToJsonTest { public static String testXML = "<MyXML><ID>123456789e1234</ID></MyXML>"; @Test public void testXMLtoJSON() throws JSONException { JSONObject testJsonObject = XML.toJSONObject(testXML); } } 这是例外: org.json.JSONException: JSON does not allow non-finite numbers. XML lib toJson()方法首先尝试将String转换为Integer,Long或Double,如果没有,它会放弃将其解析为数字并将其视为String.在这种情况下,String 123456789e1234可解析为Double.后来当lib通过Double.isInfinite()检查double是否为无穷大时,它会抛出JSONException,因为很明显123456789e1234大于Double的有限标准. 如何强制它不要将值解析为数字?在这种情况下,有没有正确将XML转换为JSON的java库? 解决方法
试试这个 …
import org.json.me.JSONObject; import cjm.component.cb.json.ToJSON; public class DummyClass { public static void main(String[] args) { try { String xml = "<MyXML><ID>123456789e1234</ID></MyXML>"; JSONObject obj = (new ToJSON().convertToJSON(xml)); System.out.println(obj); } catch (Exception e) { e.printStackTrace(); } } } 产量 -------- XML Detected -------- -------- JSON created Successfully -------- {"MyXML":{"ID":"123456789e1234"}} 获得Conversion Box罐子…. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |