Menggunakan jackson 2.1, bagaimana cara menonaktifkan fail_on_empty beans
pesan kesalahan yang sepertinya ingin saya nonaktifkan?
Saya berasumsi bahwa ini hanyalah hal yang paling sederhana di dunia, tetapi sebenarnya sudah terlambat dan saya belum dapat menemukan tutorial sederhana atau sesuatu yang sangat jelas dari api
. SerializationFactory
? Mengapa mereka membuatnya begitu tidak intuitif dan kemudian membuat pesan kesalahan tampak begitu jelas?
Meskipun saya lakukan seperti pesan kesalahan, maksud saya, lebih baik daripada NPE.
Saya berasumsi ada cara untuk melakukan ini menggunakan anotasi - tetapi saya tidak tertarik menggunakannya sama sekali untuk pekerjaan sederhana yang saya lakukan!
@JsonSerialize
untuk menonaktifkanFAIL_ON_EMPTY_BEANS
pada deklarasi kelas?Jika Anda menggunakan Spring Boot, Anda dapat menyetel properti berikut di file application.properties. spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false
sumber
Anda juga bisa mendapatkan masalah yang sama jika kelas Anda tidak berisi metode / properti publik. Saya biasanya telah mendedikasikan DTO untuk permintaan dan tanggapan API, menyatakan publik, tetapi lupa dalam satu kasus untuk membuat metode publik juga - yang menyebabkan kacang "kosong" di tempat pertama.
sumber
Anda juga mungkin dapat membuat anotasi kelas dengan
@JsonIgnoreProperties(ignoreUnknown=true)
untuk mengabaikan bidang yang tidak ditentukan di kelassumber
Jika Anda ingin mendapatkan objek JSON tanpa bidang tambahan - tambahkan anotasi ini ke kelas Anda, ini bekerja sempurna untuk saya.
Anda juga dapat menambahkan file application.properties di baris ini, tetapi ini akan menambahkan kolom tambahan ke JSON Anda.
sumber
Jika Anda menggunakan org.codehaus.jackson.map.ObjectMapper, silakan. gunakan baris berikut
sumber
Di Jersey Rest Services cukup gunakan anotasi JacksonFeatures ...
sumber
Dalam kasus saya, saya melewatkan untuk menulis anotasi @JsonProperty di salah satu bidang yang menyebabkan kesalahan ini.
sumber
Menambahkan solusi di sini untuk masalah yang berbeda, tetapi solusi yang memanifestasikan kesalahan yang sama ... Berhati-hatilah saat membuat json dengan cepat (sebagai respons api atau apa pun) untuk menghindari tanda kutip ganda literal di anggota string Anda. Anda mungkin menggunakan json rusak Anda sendiri.
sumber
Untuk memperbaiki masalah ini, konfigurasikan kelas JsonDataFormat Anda seperti di bawah ini
yang hampir setara dengan,
sumber
Hai,
Saat saya menggunakan
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
Nilai objek json saya menjadi '' kosong dalam maksud halaman sudut sebagai tanggapan
Diselesaikan dengan bantuan hanya di bawah pengaturan
sumber
Dalam kasus saya, saya tidak perlu menonaktifkannya, melainkan saya harus meletakkan kode ini di atas kelas saya: (dan ini menyelesaikan masalah saya)
sumber