Java 从XML或JSon中读取值,哪个性能更好
我很困惑,你能帮我解决这个问题吗?也就是说,我正在使用xpath直接读取xml消息并从中读取值,而且我正在尝试将xml转换为json并读取值,因为对象很轻,所以哪种方法是读取值的最佳方法。我附上以下代码片段 下面是从xml中读取值的代码Java 从XML或JSon中读取值,哪个性能更好,java,xml,json,performance,Java,Xml,Json,Performance,我很困惑,你能帮我解决这个问题吗?也就是说,我正在使用xpath直接读取xml消息并从中读取值,而且我正在尝试将xml转换为json并读取值,因为对象很轻,所以哪种方法是读取值的最佳方法。我附上以下代码片段 下面是从xml中读取值的代码 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(source);
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
String eventNumber = xpath.evaluate("/event/eventnumber", document);
下面是将xml转换为json的步骤
JSONObject xmlJSONObj = XML.toJSONObject(xml1);
这实际上取决于您将数据用于什么目的。如果您需要对数据进行大量的解析/遍历,那么由于JSON API的性质,JSON的速度要快得多。因此,如果您需要对单个文件进行大量数据提取/检查,我将把XML转换为JSON
如果您只需要在XML文件中找到一个字段,或者只需要进行少量的解析/数据提取,那么我将坚持使用XML。如果只需要对XML文件进行少量遍历,那么将XML文件转换为JSON的额外处理就不值得了。将XML转换为JSON然后遍历JSON所需的处理时间比遍历XML文件一次所需的处理时间要昂贵。此处发布的另一个讨论:
我的拙见是,既然您收到的是XML格式的消息,那么将其转换为JSON然后对其进行解析并不能提高效率——所以请坚持使用XML,输入为XML,为了速度而转换为JSON看起来不是个好主意。我猜,使用另一种方法,您在DOM创建上浪费了时间,而在
xpath
上则浪费了更多时间。最快的解决方案是IMHO a。它不创建对象,只调用你感兴趣的事件。@ VSrWAN 100值不是那么多,但是如果你想要速度,我会考虑CSV,如果它适合你的数据。如果你发现你必须做很多遍历XML树,那么我会转换成JSON。但是,如果您要查找的元素非常浅,并且不需要很多行代码来提取所需的数据,我会保持原样。下面是对XML与JSON的更深入的分析。这在很大程度上取决于偏好和可用性/可读性。