Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan Ralat 'Medan Tidak Diiktiraf' Apabila Menggunakan Jackson dengan JSON?

Bagaimana untuk Mengendalikan Ralat 'Medan Tidak Diiktiraf' Apabila Menggunakan Jackson dengan JSON?

Patricia Arquette
Patricia Arquetteasal
2024-11-17 07:18:03713semak imbas

How to Handle

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!

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