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
Lepaskan: 2024-12-17 17:23:11
asal
260 orang telah melayarinya

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);
Salin selepas log masuk

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan