Jackson dan JSON: Pengendalian Ralat dengan Medan Tidak Dikenali
Isu timbul apabila Jackson menemui "pembungkus" harta tidak dikenali yang cuba dipetakan ke kelas Wrapper. Memandangkan medan tidak ditakrifkan dalam kelas sasaran, ia gagal dengan "UnrecognizedPropertyException."
Penyelesaian
Untuk menyelesaikan isu ini, manfaatkan anotasi JsonIgnoreProperties Jackson. Anotasi ini boleh digunakan pada peringkat kelas untuk menentukan bahawa sebarang sifat yang tidak dikenali harus diabaikan. Secara lalai, ia mengabaikan sebarang sifat yang tidak ditakrifkan secara eksplisit dalam POJO.
Contoh penggunaan anotasi ini:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties class Wrapper { ... }
Anotasi ini memastikan bahawa sebarang sifat dalam JSON yang tidak sepadan dengan medan yang ditakrifkan dalam kelas Pembungkus akan dilangkau semasa penyahserialisasian.
Pilihan Lanjutan
Untuk kes di mana anda ingin mengabaikan semua sifat yang tidak diisytiharkan, walaupun yang mempunyai pengambil dan penetap kaedah yang ditakrifkan dalam kelas sasaran, anda boleh menggunakan bendera ignoreUnknown:
@JsonIgnoreProperties(ignoreUnknown = true) class Wrapper { ... }
Dengan menyatakan ignoreUnknown = true, Jackson akan mengabaikan sebarang sifat dalam JSON yang tidak mempunyai medan sepadan dalam kelas Wrapper, tanpa mengira kewujudan kaedah getter atau setter.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Medan Tidak Diiktiraf dalam Penyahserialisasian Jackson JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!