Rumah >Java >javaTutorial >Bagaimana Saya Boleh Menghalang Jackson daripada Mensiri Medan Null?

Bagaimana Saya Boleh Menghalang Jackson daripada Mensiri Medan Null?

Linda Hamilton
Linda Hamiltonasal
2024-12-18 07:04:11621semak imbas

How Can I Prevent Jackson from Serializing Null Fields?

Melangkau Pensiri Medan Null dengan Jackson

Jackson menyediakan beberapa cara untuk menyekat pensirilan medan dengan nilai nol. Ini boleh berguna untuk mengurangkan saiz data bersiri atau untuk memastikan medan tertentu tidak didedahkan secara luaran.

Mengkonfigurasi ObjectMapper

Untuk mengkonfigurasi Jackson secara global agar mengabaikan null nilai, anda boleh menetapkan sifat SerializationInclusion ObjectMapper:

mapper.setSerializationInclusion(Include.NON_NULL);

Ini akan menyebabkan Jackson untuk melangkau mana-mana medan dengan nilai nol semasa bersiri.

Menggunakan Anotasi @JsonInclude

Untuk medan individu, anda boleh menggunakan anotasi @JsonInclude untuk mengawal cara null nilai dikendalikan:

class SomeClass {
   @JsonInclude(Include.NON_NULL)
   private String someValue; 
}

Dengan anotasi ini, medan someValue akan hanya bersiri jika ia bukan nol.

Menggunakan @JsonInclude dengan Getters

Sebagai alternatif, anda boleh menggunakan @JsonInclude dalam kaedah getter untuk mengecualikan medan secara terpilih berdasarkan value:

class SomeClass {
   private String someValue; 

   @JsonInclude(value=Include.NON_NULL, content=Include.ALWAYS)
   public String getSomeValue() {
      return someValue;
   }
}

Dalam contoh ini, medan someValue akan dikecualikan daripada bersiri jika ia batal, tetapi ia akan disertakan jika ia bukan batal, walaupun ia adalah rentetan kosong.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Menghalang Jackson daripada Mensiri Medan Null?. 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