高效的 JSON 文件处理在现代应用程序中非常重要。如果 JSON 文件很大,我们需要妥善处理,以避免堆内存不足错误和大量资源消耗。
GSON 是 Java 中处理 JSON 文件的最佳库之一。
它提供线程安全实例来重用同一对象来处理多个请求。
除非有特殊情况,否则它不期望任何注释可用于序列化和反序列化。
提供 toJson() 和 fromJson() 方法用于序列化和反序列化。
它提供使用流阅读器读取内容的支持。
下面是使用 java 流读取器读取文件并转换为 Java 对象的代码片段。我正在对每 100 条记录应用我的业务逻辑。
假设 JSON 文件具有如下所示的数据数组。
[
{
“id”:1,
“名字”:“艾米丽”,
“姓氏”:“约翰逊”
}
]
Java 代码
private Optional<Boolean> readFile(String path) { try (InputStream inputStream = Files.newInputStream(Path.of(path)); JsonReader reader = new JsonReader(new InputStreamReader(inputStream))) { Instant start = Instant.now(); reader.beginArray(); List<User> users = new ArrayList<>(); while (reader.hasNext()) { users.add(gson.fromJson(reader, User.class)); if (users.size() >= 100) { //Initiate your records processing //You can consider processing it async way handling failure scenarios properly users.clear(); } } reader.endArray(); LOGGER.info("Total time taken to process file:{}, Duration:{} (millis)", path, Duration.between(start, Instant.now()).toMillis()); } catch (Exception e) { LOGGER.error("", e); return Optional.of(false); } return Optional.of(true); }
以上是Java 中的大型 JSON 文件处理的详细内容。更多信息请关注PHP中文网其他相关文章!