Rumah >Java >javaTutorial >Bagaimana untuk Membuat Deserializer JSON Tersuai untuk 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; }
Dan struktur JSON yang mewakili senarai pengguna:
[{"id":1,"name":"Jonas","update_date":"1300962900226"}, {"id":5,"name":"Test","date_date":"1304782298024"}]
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)); } }
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();
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!