Rumah > Java > javaTutorial > Bagaimana untuk Menggunakan Gson TypeToken dengan Jenis Item Dynamic ArrayList pada Runtime?

Bagaimana untuk Menggunakan Gson TypeToken dengan Jenis Item Dynamic ArrayList pada Runtime?

Patricia Arquette
Lepaskan: 2024-12-05 17:16:11
asal
375 orang telah melayarinya

How to Use Gson TypeToken with Dynamic ArrayList Item Types at Runtime?

Gson TypeToken dengan Dynamic ArrayList Item Type at Runtime

Apabila bekerja dengan JSON, adalah perkara biasa untuk menukar data JSON kepada objek yang ditaip menggunakan Gson. Walau bagaimanapun, anda mungkin menghadapi senario di mana jenis item ArrayList yang anda perlukan untuk menghuraikan ditentukan secara dinamik pada masa jalan menggunakan refleksi. Dalam kes sedemikian, pendekatan TypeToken tradisional mungkin gagal.

Sebagai contoh, pertimbangkan kod ini:

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
Salin selepas log masuk

Kod ini menukar rentetan JSON kepada senarai objek myClass. Tetapi bagaimana jika jenis item ArrayList harus ditentukan secara dinamik?

Untuk mencapai ini, anda boleh memanfaatkan ciri baharu yang diperkenalkan dalam Gson versi 2.8.0: TypeToken.getParameterized. Kaedah ini membolehkan anda mencipta TypeToken dengan jenis parameter yang ditentukan.

Begini cara anda boleh menggunakannya:

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, type).getType();
    return typeOfObjectsListNew;
}
Salin selepas log masuk

Dengan menghantar kelas ArrayList dan jenis kelas jenis item dinamik sebagai argumen kepada TypeToken.getParameterized, anda mencipta TypeToken yang mewakili ArrayList dengan jenis item yang dikehendaki. TypeToken ini kemudiannya boleh digunakan sebagai parameter untuk Gson.fromJson untuk menghuraikan data JSON dengan betul ke dalam jenis senarai yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Gson TypeToken dengan Jenis Item Dynamic ArrayList pada Runtime?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan