快速高效的方式以Java逐行读取大型JSON文件

我的文件中有1亿条记录JSON,需要一种有效且最快的方法来从中的JSON文件读取数组数组java

JSON 文件看起来像:

[["XYZ",...,"ABC"],["XYZ",...,"ABC"],["XYZ",...,"ABC"],...,["XYZ",...,"ABC"],

["XYZ",...,"ABC"],["XYZ",...,"ABC"],["XYZ",...,"ABC"],...,["XYZ",...,"ABC"],

...

...

...

,["XYZ",...,"ABC"],["XYZ",...,"ABC"],["XYZ",...,"ABC"]]

我想JSON逐行读取此文件为:

首先阅读:

["XYZ",...,"ABC"]

然后:

["XYZ",...,"ABC"]

依此类推:’

...

...

...

["XYZ",...,"ABC"]

我如何读取这样的JSON文件,我知道它看起来并不完全像JSON文件,但是我需要以另存为JSON的这种格式读取该文件

回答:

您可以使用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);

}

}

}

以上是 快速高效的方式以Java逐行读取大型JSON文件 的全部内容, 来源链接: utcz.com/qa/433224.html

回到顶部