Menindas Pensirian Medan Null dengan Jackson
Jackson ialah perpustakaan pengikat data Java yang popular yang mengendalikan pensirilan dan penyahsirilan antara objek Java dan JSON. Secara lalai, Jackson akan mensiri semua medan bukan nol bagi sesuatu objek. Walau bagaimanapun, mungkin terdapat senario di mana anda ingin mengabaikan medan tertentu semasa bersiri jika nilainya adalah batal.
Menggunakan @JsonInclude Anotation
Jackson 2.0 dan kemudiannya memperkenalkan @ Anotasi JsonInclude, yang membolehkan anda menentukan bila medan harus disertakan atau dikecualikan semasa bersiri. Untuk mengabaikan medan jika nilainya adalah nol, gunakan nilai Include.NON_NULL:
@JsonInclude(Include.NON_NULL) public class SomeClass { private String someValue; }
Dengan anotasi ini digunakan pada medan, Jackson akan melangkau medan someValue semasa penyirian jika ia adalah batal.
Mengubah suai Konfigurasi ObjectMapper
Sebagai alternatif, anda boleh mengkonfigurasi ObjectMapper terus untuk menyekat siri nilai nol. Untuk berbuat demikian, gunakan kaedah setSerializationInclusion dengan nilai Include.NON_NULL:
mapper.setSerializationInclusion(Include.NON_NULL);
Ini akan mengarahkan Jackson untuk mengabaikan semua medan null semasa bersiri untuk semua objek yang dipetakan oleh pemeta.
Menggunakan @JsonInclude dalam Getters
Pilihan lain ialah menggunakan anotasi @JsonInclude dalam kaedah getter untuk medan. Ini membolehkan anda mengawal kemasukan atau pengecualian medan berdasarkan nilai yang dikembalikan. Contohnya:
public class SomeClass { private String someValue; @JsonInclude(JsonInclude.Include.NON_NULL) public String getSomeValue() { return someValue; } }
Dalam kes ini, medan someValue hanya akan disertakan semasa bersiri jika kaedah getter mengembalikan nilai bukan nol.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Jackson daripada Mensiri Medan Null di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!