Saya mendapatkan kesalahan berikut ketika mencoba untuk mendapatkan permintaan JSON dan memprosesnya:
org.codehaus.jackson.map.JsonMappingException: Tidak ditemukan konstruktor yang cocok untuk tipe [tipe sederhana, kelas com.myweb.ApplesDO]: tidak dapat instantiate dari objek JSON (perlu menambah / mengaktifkan informasi jenis?)
Inilah JSON yang saya coba kirim:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
Di Kontroler, saya memiliki tanda tangan metode berikut:
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
AllApplesDO adalah pembungkus ApplesDO:
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
ApelDO:
public class ApplesDO {
private String apple;
public String getApple() {
return apple;
}
public void setApple(String appl) {
this.apple = apple;
}
public ApplesDO(CustomType custom){
//constructor Code
}
}
Saya berpikir bahwa Jackson tidak dapat mengubah JSON menjadi objek Java untuk subkelas. Tolong bantu dengan parameter konfigurasi untuk Jackson untuk mengkonversi JSON menjadi Java Objects. Saya menggunakan Spring Framework.
EDIT: Termasuk bug utama yang menyebabkan masalah ini di kelas sampel di atas - Silakan lihat jawaban yang diterima untuk solusi.