Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从XML或JSon中读取值,哪个性能更好_Java_Xml_Json_Performance - Fatal编程技术网

Java 从XML或JSon中读取值,哪个性能更好

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

我很困惑,你能帮我解决这个问题吗?也就是说,我正在使用xpath直接读取xml消息并从中读取值,而且我正在尝试将xml转换为json并读取值,因为对象很轻,所以哪种方法是读取值的最佳方法。我附上以下代码片段

下面是从xml中读取值的代码

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的更深入的分析。这在很大程度上取决于偏好和可用性/可读性。