Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menindas Nilai Medan Null Semasa Pensirilan Jackson?

Bagaimanakah Saya Boleh Menindas Nilai Medan Null Semasa Pensirilan Jackson?

Barbara Streisand
Barbara Streisandasal
2024-12-17 17:23:11173semak imbas

How Can I Suppress Null Field Values During Jackson Serialization?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn