我的问题与所问的类似here。
几点:
- 我无法更改格式。 (无需添加逗号等)
- 这基本上是一个巨大的 .txt 文件,包含 1000 个 Json 对象。
- 我的 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(数千个)。
这是一个对我有用的杰克逊例子。我在一个 json 文件中有数千个 json 对象(令牌)。此代码将遍历文件读取每个令牌并打印其序列。
所需进口:
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
使用 Jackson 读取多个 json 对象FileInputStream
:
try (FileInputStream fis = new FileInputStream("D:/temp/tokens.json")) {
JsonFactory jf = new JsonFactory();
JsonParser jp = jf.createParser(fis);
jp.setCodec(new ObjectMapper());
jp.nextToken();
while (jp.hasCurrentToken()) {
Token token = jp.readValueAs(Token.class);
jp.nextToken();
System.out.println("Token serial "+token.getSerialNumber());
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)