Rumah  >  Artikel  >  Java  >  Pemprosesan fail JSON yang besar dalam Java

Pemprosesan fail JSON yang besar dalam Java

Barbara Streisand
Barbara Streisandasal
2024-10-21 16:11:29849semak imbas

Large JSON file processing in Java

Pemprosesan fail JSON yang cekap adalah penting dalam aplikasi moden. Jika fail JSON bersaiz besar, kami perlu mengendalikannya dengan betul untuk mengelakkan timbunan ralat memori dan penggunaan sumber yang banyak.

GSON ialah salah satu pustaka terbaik yang tersedia di Java untuk memproses fail JSON.

  • Ia menyediakan contoh selamat benang untuk menggunakan semula objek yang sama untuk memproses berbilang permintaan.

  • Ia tidak menjangkakan sebarang anotasi tersedia untuk bersiri dan penyahserikatan melainkan terdapat kes khas.

  • Ia menyediakan kaedah toJson() dan fromJson() untuk bersiri dan penyahsirilan.

  • Ia menyediakan sokongan untuk membaca kandungan menggunakan pembaca strim.

Di bawah ialah coretan kod untuk membaca fail menggunakan pembaca aliran java dan menukar kepada objek Java. Saya menggunakan logik perniagaan saya untuk setiap 100 rekod.

Anggapan Fail JSON mempunyai tatasusunan data seperti di bawah.

[
{
"id": 1,
"firstName": "Emily",
"Nama Akhir": "Johnson"
}
]

Kod 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);
}

Atas ialah kandungan terperinci Pemprosesan fail JSON yang besar dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn