Rumah > Java > javaTutorial > Bagaimana untuk Menyahseri Senarai Generik dengan Gson?

Bagaimana untuk Menyahseri Senarai Generik dengan Gson?

DDD
Lepaskan: 2024-12-15 06:09:14
asal
939 orang telah melayarinya

How to Deserialize a Generic List with Gson?

Menyahsiri Senarai Generik dengan Gson

Apabila menggunakan Gson untuk memindahkan objek senarai, anda mungkin menghadapi cabaran apabila berurusan dengan jenis generik. Artikel ini menyediakan panduan komprehensif untuk menyahsiri senarai generik dengan Gson.

Masalah:
Percubaan untuk menyahsiri senarai menggunakan List().getClass() baharu menghasilkan ralat atau pembetulan kompleks dengan pelbagai kaedah stub.

Penyelesaian:
Untuk menyahsiri senarai generik dengan betul, gunakan kelas TypeToken seperti berikut:

Type listType = new TypeToken<List<MyClass>>() {}.getType();
MyClass mc = new Gson().fromJson(result, listType);
Salin selepas log masuk

Pendekatan ini menghapuskan keperluan untuk getClass () doa, memberikan yang lebih ringkas dan berkesan penyelesaian.

Penjelasan:
TypeToken menangkap jenis generik pada masa penyusunan. Subkelas tanpa nama yang dibuat semasa instantiasi memastikan bahawa maklumat jenis yang betul dikekalkan apabila dihantar ke kaedah fromJson Gson. Ini memastikan penyahserikatan yang betul bagi senarai generik anda.

Nota Tambahan:

  • Objek Type boleh mewakili mana-mana jenis Java, termasuk instantiasi berparameter jenis generik, mengatasi had pemadaman taip.
  • TypeToken mesti menangkap jenis yang diketahui sepenuhnya pada masa penyusunan; ia tidak boleh menangkap parameter jenis generik ( TypeToken>() baharu {}.getType() tidak dibenarkan).
  • For进一步了解如何使用 TypeToken类,请参阅其文档。

Atas ialah kandungan terperinci Bagaimana untuk Menyahseri Senarai Generik dengan Gson?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan