Rumah >Java >javaTutorial >Bagaimana untuk Deserialize JSON ke dalam Kelas Generik dengan Jackson?

Bagaimana untuk Deserialize JSON ke dalam Kelas Generik dengan Jackson?

DDD
DDDasal
2024-11-20 11:41:19616semak imbas

How to Deserialize JSON into a Generic Class with Jackson?

Menyahsiri JSON menggunakan Jenis Generik dengan Jackson

Soalan: Bagaimana untuk menyahsiri data JSON ke dalam kelas generik menggunakan Jackson ?

Pertimbangkan kelas contoh berikut:

class Data<T> {
    int found;
    Class<T> hits
}

Percubaan penyahserikatan JSON standard menggunakan mapper.readValue(jsonString, Data.class) akan gagal. Untuk menyahsiri data dengan betul, kita perlu menentukan parameter jenis .

Jawapan: Jackson menyediakan kelas TypeReference untuk mengendalikan jenis generik semasa penyahserikatan. Untuk menggunakannya:

  1. Buat objek TypeReference untuk kelas generik. Dalam contoh ini, rujukan jenis untuk Data ialah:

    new TypeReference<Data<String>>() {}
  2. Lepaskan objek TypeReference ke kaedah readValue:

    mapper.readValue(jsonString, new TypeReference<Data<String>>() {});

Ini akan menyahsiri data JSON ke dalam contoh Data.

Atas ialah kandungan terperinci Bagaimana untuk Deserialize JSON ke dalam Kelas Generik dengan Jackson?. 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