Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mengendalikan Medan Tidak Diiktiraf dalam Penyahserialisasian Jackson JSON?

DDD
Lepaskan: 2024-11-16 12:34:02
asal
283 orang telah melayarinya

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

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

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan