Rumah > Java > javaTutorial > Bagaimana untuk Membuat Deserializer JSON Tersuai untuk Gson?

Bagaimana untuk Membuat Deserializer JSON Tersuai untuk Gson?

Barbara Streisand
Lepaskan: 2024-12-10 11:53:14
asal
453 orang telah melayarinya

How to Create a Custom JSON Deserializer for Gson?

Penyahserialisasi JSON Tersuai untuk Gson

Apabila menerima data JSON dengan struktur tersuai, proses penyahserikatan lalai Gson mungkin tidak mencukupi. Dalam kes sedemikian, penyahserialisasi tersuai diperlukan.

Pertimbangkan kelas Java berikut yang mewakili pengguna:

public class User {
    int id;
    String name;
    Timestamp updateDate;
}
Salin selepas log masuk

Dan struktur JSON yang mewakili senarai pengguna:

[{"id":1,"name":"Jonas","update_date":"1300962900226"},
{"id":5,"name":"Test","date_date":"1304782298024"}]
Salin selepas log masuk

Untuk menyahsiri JSON ini menjadi contoh Pengguna, penyahserialisasi tersuai boleh dilakukan ditakrifkan:

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import java.lang.reflect.Type;
import java.sql.Timestamp;

public class UserDeserializer implements JsonDeserializer<User> {
    @Override
    public User deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
        throws JsonParseException {
        long time = json.getAsJsonPrimitive().getAsLong();
        return new User(
            json.get("id").getAsInt(),
            json.get("name").getAsString(),
            new Timestamp(time));
    }
}
Salin selepas log masuk

Penyahserialisasi ini menghuraikan JSON ke dalam tika Pengguna, dengan mengambil kira nama medan yang ditentukan dan penghuraian cap masa tersuai.

Untuk menggunakan penyahserialisasi ini pada tika Gson, gunakan kaedah registerTypeAdapter:

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(User.class, new UserDeserializer());
Gson gson = gsonBuilder.create();
Salin selepas log masuk

Kini, JSON boleh dinyahsiri ke dalam senarai daripada tika Pengguna menggunakan tika Gson yang diubah suai.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Deserializer JSON Tersuai untuk 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan