Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menindas Nilai Medan Null Semasa Pensirilan Jackson?
Mengendalikan Nilai Medan Null dalam Pensirian Jackson
Jackson, pustaka bersiri Java yang popular, menyediakan pelbagai pilihan konfigurasi untuk menyesuaikan gelagat pensiriannya. Satu senario biasa ialah menyekat siri nilai medan yang batal. Ini memastikan bahawa hanya sifat bukan nol disertakan dalam output bersiri.
Mengkonfigurasi Jackson untuk Penindasan Nilai Null
Terdapat dua pendekatan utama untuk mengarahkan Jackson mengabaikan null nilai medan semasa penyirian.
1. Menggunakan SerializationInclusion:
ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
Konfigurasi global ini digunakan untuk semua medan dalam semua kelas yang diproses oleh ObjectMapper. Ia memastikan bahawa mana-mana medan dengan nilai nol akan diabaikan daripada output bersiri.
2. Menggunakan Anotasi @JsonInclude:
@JsonInclude(Include.NON_NULL) public class SomeClass { private String someValue; }
Menggunakan anotasi @JsonInclude pada kaedah kelas atau pengambil membolehkan anda menentukan tingkah laku bersiri untuk sifat atau subkelas tertentu. Dengan menetapkan Include.NON_NULL, ini menunjukkan bahawa hanya nilai bukan nol untuk medan itu harus disirikan.
Pendekatan Alternatif
Sebagai alternatif, anda boleh menggunakan anotasi @JsonInclude dalam kaedah getter untuk harta tertentu untuk mensirikan harta secara bersyarat hanya apabila nilainya tidak null.
@JsonInclude(value = JsonInclude.Include.NON_NULL, condition = JsonInclude.Include.Condition.NON_NULL) public String getSomeValue() { return someValue; }
Pertimbangan Tambahan
Perhatikan bahawa konfigurasi ini tidak menjejaskan proses penyahserikatan. Jika nilai nol ditemui semasa penyahserikatan, nilai itu masih akan ditetapkan dalam medan yang sepadan. Untuk mengawal tingkah laku penyahserikatan, rujuk dokumentasi Jackson untuk @JsonIgnoreProperties dan @JsonIgnore.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menindas Nilai Medan Null Semasa Pensirilan Jackson?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!