Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menghalang Jackson daripada Mensiri Medan Null di Jawa?

Bagaimanakah Saya Boleh Menghalang Jackson daripada Mensiri Medan Null di Jawa?

Linda Hamilton
Lepaskan: 2024-12-25 14:36:13
asal
787 orang telah melayarinya

How Can I Prevent Jackson from Serializing Null Fields in Java?

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

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

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

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!

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