Gson: Mengecualikan Medan Tertentu daripada Pensirian tanpa Anotasi
Mengecualikan medan tertentu daripada bersiri Gson tanpa anotasi boleh menjadi rumit. Begini cara untuk mencapainya menggunakan ExclusionStrategy tersuai:
Custom ExclusionStrategy
Gson menyediakan antara muka ExclusionStrategy yang membolehkan anda menyesuaikan cara medan dikecualikan. Cipta pelaksanaan antara muka ini:
public class FieldExclusionStrategy implements ExclusionStrategy { private Pattern pattern; public FieldExclusionStrategy(String regex) { pattern = Pattern.compile(regex); } @Override public boolean shouldSkipField(FieldAttributes fa) { String fieldName = fa.getName(); return pattern.matcher(fieldName).matches(); } @Override public boolean shouldSkipClass(Class<?> clazz) { return false; } }
Menyesuaikan Pengecualian
Dalam contoh yang disediakan, ExclusionStrategy mengecualikan medan berdasarkan ungkapan biasa yang diberikan. Anda boleh menyesuaikan corak agar sepadan dengan medan yang diingini untuk dikecualikan, seperti country.name.
Menggunakan Strategi Pengecualian
Setelah Strategi Pengecualian ditakrifkan, gunakannya semasa mengkonfigurasi the GsonBuilder:
Gson gson = new GsonBuilder() .setExclusionStrategies(new FieldExclusionStrategy("country.name")) .create();
Penggunaan Contoh
Selepas mengkonfigurasi Gson, anda boleh mensirikan objek Pelajar anda seperti berikut:
String json = gson.toJson(student);
Ini akan mengecualikan medan country.name daripada output JSON bersiri.
Nota Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Medan Tertentu daripada Pensirilan Gson tanpa Anotasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!