Penyahserikatan JSON Tersuai dengan Gson
Di Java, Gson ialah perpustakaan popular untuk penghuraian dan penyirian JSON. Apabila bekerja dengan struktur JSON yang kompleks, anda mungkin perlu mentakrifkan penyahserialisasi tersuai untuk mengendalikan format data tertentu.
Pertimbangkan contoh berikut di mana anda mempunyai kelas Pengguna dan menerima senarai JSON yang mengandungi objek pengguna.
public class User { int id; String name; Timestamp updateDate; }
[{"id":1,"name":"Jonas","update_date":"1300962900226"}, {"id":5,"name":"Test","date_date":"1304782298024"}]
Untuk menentukan penyahserialisasi tersuai, laksanakan antara muka JsonDeserializer dan sediakan kaedah penyahserialisasian. Walau bagaimanapun, kod yang disediakan dalam soalan mempunyai beberapa isu:
Pendekatan yang lebih sesuai melibatkan memanfaatkan sokongan terbina dalam Gson untuk dasar penamaan medan dan penyahserialisasi tersuai. Ini mengurangkan keperluan untuk penghuraian manual dan memudahkan proses penyahserikatan:
GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); gsonBuilder.registerTypeAdapter(Timestamp.class, new TimestampDeserializer());
Dalam penyahserialisasi tersuai, kaedah penyahserikatan menghuraikan nilai JSON sebagai rentetan dan mencipta objek Cap Masa:
class TimestampDeserializer implements JsonDeserializer<Timestamp> { @Override public Timestamp deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { long time = Long.parseLong(json.getAsString()); return new Timestamp(time); } }
Dengan mendaftarkan penyahserialisasi tersuai, Gson akan mengendalikan penyahserikatan update_date secara automatik sebagai Cap Masa menggunakan logik yang ditakrifkan dalam TimestampDeserializer.
Pendekatan ini menyediakan kaedah yang lebih ringkas dan mudah ralat untuk penyahserikatan JSON tersuai dengan Gson.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Menyahserialisasikan Struktur JSON Tersuai dengan Cekap dengan Gson di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!