Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mengekstrak Data JSON Bersarang Dengan Cekap Menggunakan Penukar Gson Tersuai dalam Retrofit?

Susan Sarandon
Lepaskan: 2024-11-19 04:49:02
asal
925 orang telah melayarinya

How to Efficiently Extract Nested JSON Data Using a Custom Gson Converter in Retrofit?

Mengekstrak JSON Bersarang dengan Penukar Gson Tersuai dalam Retrofit

Banyak API memberikan respons dengan struktur JSON biasa di mana objek akar merangkumi bersarang medan "kandungan" yang mengandungi data yang dikehendaki. Walau bagaimanapun, kebanyakan POJO hanya memodelkan data dalam medan "kandungan", menyebabkan penyesuai jenis pengubahsuaian tidak dapat mengekstrak dan mengembalikan objek yang sesuai.

Untuk menangani perkara ini, penyahserialisasi Gson tersuai boleh dibangunkan untuk mengekstrak " kandungan" dan kembalikan objek terbenam. Begini caranya:

Deserializer Tersuai:

Buat kelas yang melaksanakan antara muka JsonDeserializer untuk jenis POJO yang dikehendaki. Contohnya, untuk POJO "Kandungan":

class ContentDeserializer implements JsonDeserializer<Content> {
    @Override
    public Content deserialize(JsonElement je, Type type, JsonDeserializationContext jdc)
        throws JsonParseException {
        // Extract the "content" element
        JsonElement content = je.getAsJsonObject().get("content");

        // Deserialize the content using a new Gson instance
        return new Gson().fromJson(content, Content.class);
    }
}
Salin selepas log masuk

Konfigurasi Gson:

Daftarkan deserializer tersuai dengan contoh GsonBuilder:

Gson gson = new GsonBuilder()
    .registerTypeAdapter(Content.class, new ContentDeserializer())
    .create();
Salin selepas log masuk

Tindakan Gson ini kini boleh digunakan untuk menyahsiri respons JSON terus ke objek "Kandungan" yang dibenamkan.

Penyepaduan Retrofit:

Akhir sekali, gunakan penukar Gson tersuai apabila mencipta contoh Retrofit:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(url)
    .addConverterFactory(GsonConverterFactory.create(gson))
    .build();
Salin selepas log masuk

Kini, apabila Retrofit menyahsiri respons API, ia akan menggunakan penukar tersuai untuk mengekstrak medan "kandungan" sahaja dan mengembalikan jenis POJO yang sesuai.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Data JSON Bersarang Dengan Cekap Menggunakan Penukar Gson Tersuai dalam Retrofit?. 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