【发布时间】:2015-08-07 06:00:56
【问题描述】:
我的问题类似于here 的问题。 几点:
- 我无法更改格式。 (不加逗号等)
- 这基本上是一个包含 1000 个 Json 对象的巨大 .txt 文件。
- 我的 Json 对象非常庞大。
这就是我现在正在做的事情:
FileReader fileReader = new FileReader(fileName);
BufferedReader reader = new BufferedReader(fileReader);
String data = "";
while((data = reader.readLine()) != null){
ObjectMapper mapper = new ObjectMapper();
Map<String,String> map = mapper.readValue(data, Map.class);
}
目前我正在使用 Jackson,理想情况下,我想一次从文件中读取一个 Json 对象,解析它然后继续下一个。我需要从这些 Json 对象中计算出唯一数量的 id 并执行更多操作。最好一一阅读。
杰克逊会是最好的前进方式吗? This 是解析巨大 Json 的一个很好的例子,但它每个文件只处理一个对象。我的文件有巨大的 Json(其中 1000 个)。
【问题讨论】:
-
问:您是否尝试过使用 Jackson Streaming API 解析 JSON(根据您的链接)?你确定它不能在一个文件中处理多个 JSON 对象吗?
-
我已经尝试过在This link 中做同样的事情。它只解析第一个 json 对象并停止。
-
解析器是否将
InputStream或Reader作为参数?在这种情况下,可能会循环读取对象,直到InputStream达到 EOF(检查available)。 -
这可能行得通。它确实有一个阅读器。它现在正在遍历不同的对象,但它搞砸了其中的嵌套对象。我会尝试修复它,看看它是否有效。谢谢。
-
如果你想用Jackson 为什么要标记这个问题Gson?