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
Lepaskan: 2024-11-17 07:18:03
asal
712 orang telah melayarinya

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan