当前位置: 首页 > 面试题库 >

JAVA-解析巨大(特大)JSON文件的最佳方法

单于山
2023-03-14
问题内容

我正在尝试使用gson库(http://code.google.com/p/google-解析一些巨大的JSON文件(例如http://eu.battle.net/auction-
data/258993a3c6b974ef3e6f22ea6f822720/auctions.json
)JAVA中的gson
/
)。

我想知道解析这种大文件(约80k行)的最佳方法是什么,以及您是否知道可以帮助我处理此问题的优质API。

一些想法…

  1. 逐行读取并摆脱JSON格式:但这是无稽之谈。
  2. 通过将此文件分成许多其他文件来减少JSON文件:但是我没有找到任何适合的Java API。
  3. 直接将此文件用作nonSql数据库,保留该文件并将其用作我的数据库。

非常感谢adics / help /消息/ :-)谢谢。


问题答案:

您无需切换到杰克逊。Gson 2.1引入了一个新的TypeAdapter接口,该接口允许混合树,流序列化和反序列化。

该API高效灵活。有关结合树和 绑定
模式的示例,请参见Gson的Streaming文档。严格来说,这比混合流和树模式要好。通过绑定,您不会浪费内存来建立您的价值观的中间代表。

与Jackson一样,Gson也有API可以递归地跳过不需要的值。Gson将此称为skipValue()。



 类似资料:
  • 问题内容: 我正在尝试将DMOZ内容/结构XML文件解析为MySQL,但是所有现有的脚本都已经很老了并且不能很好地工作。如何在PHP中打开大型(+ 1GB)XML文件进行解析? 问题答案: 只有两个php API真正适合处理大文件。第一个是旧的expatapi,第二个是较新的XMLreader函数。这些api读取连续流,而不是将整个树加载到内存中(这是simplexml和DOM所做的)。 例如,您

  • 我在解析一个巨大的json文件(200mb)时遇到问题。起初,我尝试使用JACKSON将json解析为一棵树。然而,我遇到了堆大小问题。出于某种原因,增加堆大小不是一个选项。 JSON格式: 我想做的是产生像这样的弦 有没有办法做到这一点而不出现堆问题? 在python中,有一种简单的方法可以做到这一点,而且没有堆问题(没有JVM) 一些想法:我可能不需要使用杰克逊树方法,因为我只想要字符串。流媒

  • 问题内容: 我正在研究可访问API的cron脚本,可接收JSON文件(大量对象)并将其存储在本地。完成后,另一个脚本需要解析下载的JSON文件,并将每个对象插入MySQL数据库。 我目前正在使用和。这将尝试在尝试处理之前将整个文件读入内存。除了我的JSON文件通常在250MB-1GB +之间的事实之外,这将很好。我知道我可以增加我的PHP内存限制,但这在我看来似乎并不是最大的答案。我知道我可以运行

  • 为了在巨大的xml文件中执行XPATH查询,我阅读了许多喜欢VTD-xml的文章,因此我复制了这些文章中的代码: 但当我运行它时没有结果,所以这意味着XML文件没有映射到内存中。。。我的问题是如何在VTD-xml中强制映射xml文件?

  • 问题内容: 我的老板习惯于对我们的数据库执行查询,该查询返回数万行并将其保存到excel文件中。作为实习生,我经常不得不编写脚本来处理这些文件中的信息。到目前为止,我已经为满足脚本需求尝试了VBScript和Powershell。这两个过程都可能需要几分钟才能执行,即使是最简单的任务,这也意味着该脚本完成后将需要8小时的大部分时间。 我现在的解决方法是编写一个PowerShell脚本,该脚本从xl