Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan Medan Tidak Diiktiraf dalam Penyahserialisasian Jackson JSON?

Bagaimana untuk Mengendalikan Medan Tidak Diiktiraf dalam Penyahserialisasian Jackson JSON?

DDD
DDDasal
2024-11-16 12:34:02357semak imbas

How to Handle Unrecognized Fields in Jackson JSON Deserialization?

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!

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