我有一个大型JSON文件,其大小为5.09 GB。我想将其转换为XML文件。我尝试过在线转换器,但文件太大了。有谁知道怎么做?
答案 0 :(得分:1)
处理XML和JSON文件的典型方法是将这些文件完全加载到内存中。然后你有一个所谓的DOM,它允许你进行各种数据处理。但是,XML和JSON都不是真的用于存储你在这里拥有的那么多数据。根据我的经验,一旦超过200 MB的限制,通常会遇到内存问题。这是因为创建了由单个对象组成的DOM。这种方法会导致巨大的内存开销,远远超过您想要处理的数据量。
处理这样的文件的唯一方法基本上是采用流方法。基本思想:不是解析整个文件并将其加载到内存中,而是“动态”解析和处理文件。在读取数据时,它会被解析并触发事件,您的软件可以根据需要做出反应并执行某些操作。 (有关详细信息,请查看SAX API以更详细地了解此概念。)
正如您所说,您正在处理JSON,而不是XML。 JSON的流API也应该可以在野外使用。无论如何,你可以自己轻松地实现一个:JSON是一种非常简单的数据格式。
然而,这种方法并不是最优的:通常这样的概念会导致数据处理速度非常慢,因为涉及到数百万个方法调用:对于遇到的每个项目,您通常需要调用一个方法来执行某些数据处理任务。这与对您当前在流中遇到的信息类型的额外检查一起将大大减慢数据处理速度。
你真的应该考虑使用另一种方法。首先将文件拆分成许多小文件,然后对它们执行处理。这种方法似乎不是很优雅,但它有助于使您的任务更简单。这样您就获得了一个主要优势:您可以更轻松地调试软件。不幸的是,你不是很关注你的问题,所以我只能猜测,但是大文件通常意味着数据模型非常复杂。因此,通过拥有许多小文件而不是单个大文件,你可能会好得多。之后,它允许您根据需要深入研究数据的各个方面和数据处理过程。您可能无法获得任何详细的见解,同时拥有一个5 GByte的单个大文件来处理。如果出现错误,您将难以确定巨大文件的哪个部分导致问题。
正如我已经说过的,遗憾的是你的问题非常不明确。抱歉,由于没有关于您的问题(特别是您的数据)的更多详细信息,我只能向您提供有关数据处理的一般建议。我不知道有关您的数据的任何细节,因此我无法向您提供有关哪种方法最适合您的建议。