Jackson dengan JSON: Resolusi Medan Tidak Diiktiraf
Apabila cuba menukar rentetan JSON kepada objek Java menggunakan Jackson, "medan Tidak Dikenali" ralat mungkin timbul. Ini berlaku apabila medan wujud dalam JSON tetapi tidak terdapat dalam kelas Java yang sepadan.
Dalam contoh yang disediakan, input JSON mengandungi medan "pembungkus", yang tiada dalam kedua-dua kelas Pelajar dan Pembungkus . Untuk menyelesaikan isu ini, anda boleh menggunakan anotasi peringkat kelas Jackson: @JsonIgnoreProperties.
@JsonIgnoreProperties Anotasi
Anotasi @JsonIgnoreProperties membolehkan anda menentukan sifat dalam JSON harus diabaikan. Ini amat berguna apabila anda hanya memerlukan subset sifat JSON dan ingin mengelak daripada membuat pemetaan besar.
Penggunaan
Untuk mengabaikan medan "pembungkus" dalam JSON anda, anda boleh menambah anotasi @JsonIgnoreProperties pada kelas Wrapper anda:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties(ignoreUnknown = true) public class Wrapper { ... }
Dengan menggunakan ignoreUnknown = true, anda mengarahkan Jackson untuk mengabaikan sebarang sifat tidak diketahui yang ditemuinya dalam JSON.
Pendekatan Alternatif
Sebagai alternatif, anda boleh mengisytiharkan pengambil dan penetap secara eksplisit untuk medan "pembungkus" dalam kelas Pembungkus anda, walaupun anda tidak berhasrat untuk menggunakannya. Ini akan menyedarkan Jackson tentang medan tersebut dan menghalang ralat "Medan tidak dikenali".
Ia juga mungkin menggunakan anotasi @JacksonXmlRootElement untuk menentukan elemen akar JSON, tetapi ia mungkin bukan penyelesaian terbaik dalam semua senario.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat 'Medan Tidak Diiktiraf' Apabila Menggunakan Jackson dengan JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!