Pengecualian Medan Gson Tanpa Anotasi
Dalam Gson, anda boleh mengecualikan medan tertentu daripada bersiri tanpa menggunakan anotasi. Mari kita teroka pendekatan alternatif menggunakan kaedah GsonBuilder.setExclusionStrategies().
Antara muka ExclusionStrategy membolehkan anda mengawal medan mana yang dikecualikan atau disertakan semasa bersiri. Walau bagaimanapun, maklumat FieldAttributes yang diberikan mungkin tidak mencukupi untuk menentukan laluan medan tertentu.
Untuk menangani isu ini, pertimbangkan untuk melanjutkan antara muka ExclusionStrategy dan tentukan kriteria pengecualian anda sendiri. Anda boleh menggunakan ungkapan biasa untuk memadankan laluan medan tertentu dan mengecualikannya dengan sewajarnya. Pendekatan ini memberikan lebih fleksibiliti dalam menentukan medan yang akan dikecualikan.
Berikut ialah contoh cara anda boleh mencapai pengecualian medan berdasarkan laluan medan:
import com.google.gson.ExclusionStrategy; import com.google.gson.FieldAttributes; public class CustomExclusionStrategy implements ExclusionStrategy { private String[] excludedPaths; public CustomExclusionStrategy(String[] excludedPaths) { this.excludedPaths = excludedPaths; } @Override public boolean shouldSkipField(FieldAttributes fieldAttributes) { for (String excludedPath : excludedPaths) { if (fieldAttributes.getDeclaringClass().getName() + "." + fieldAttributes.getName().equals(excludedPath)) { return true; } } return false; } @Override public boolean shouldSkipClass(Class<?> clazz) { return false; } }
Anda kemudian boleh menggunakan tersuai ini strategi pengecualian dalam GsonBuilder anda:
Gson gson = new GsonBuilder() .setExclusionStrategies(new CustomExclusionStrategy("country.name")) .create();
Pendekatan ini membolehkan anda mengecualikan laluan medan tertentu, seperti "country.name", semasa bersiri. Anda boleh melanjutkan strategi ini untuk menyokong kriteria pengecualian yang lebih kompleks mengikut keperluan.
Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Medan Gson Tanpa Anotasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!