问题描述
您可以使用JSON Processing API(JSR 353)来以流方式处理数据:
import javax.json.Json;
import javax.json.stream.JsonParser;
...
String dataPath = "data.json";
try(JsonParser parser = Json.createParser(new FileReader(dataPath))) {
List<String> row = new ArrayList<>();
while(parser.hasNext()) {
JsonParser.Event event = parser.next();
switch(event) {
case START_ARRAY:
continue;
case VALUE_STRING:
row.add(parser.getString());
break;
case END_ARRAY:
if(!row.isEmpty()) {
//Do something with the current row of data
System.out.println(row);
//Reset it (prepare for the new row)
row.clear();
}
break;
default:
throw new IllegalStateException("Unexpected JSON event: " + event);
}
}
}
解决方法
我的文件中有1亿条记录JSON
,需要一种有效且最快的方法来从中的JSON
文件读取数组数组java
。
JSON
文件看起来像:
[["XYZ",...,"ABC"],["XYZ",...
...
...,"ABC"]]
我想JSON
逐行读取此文件为:
首先阅读:
["XYZ","ABC"]
然后:
["XYZ","ABC"]
依此类推:’
...
...
...
["XYZ","ABC"]
我如何读取这样的JSON
文件,我知道它看起来并不完全像JSON
文件,但是我需要以另存为JSON的这种格式读取该文件