最新のアプリケーションでは、効率的な JSON ファイル処理が重要です。 JSON ファイルのサイズが大きい場合は、メモリ不足エラーやリソースの大量消費を避けるために、適切に処理する必要があります。
GSON は、JSON ファイルを処理するために Java で利用できる最高のライブラリの 1 つです。
同じオブジェクトを再利用して複数のリクエストを処理するためのスレッドセーフなインスタンスを提供します。
特別な場合がない限り、シリアル化と逆シリアル化にアノテーションが使用できることは想定されていません。
シリアル化と逆シリアル化のための 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 中国語 Web サイトの他の関連記事を参照してください。