Podczas próby otrzymania żądania JSON i przetworzenia go pojawia się następujący błąd:
org.codehaus.jackson.map.JsonMappingException: Nie znaleziono odpowiedniego konstruktora dla typu [typ prosty, klasa com.myweb.ApplesDO]: nie można utworzyć instancji z obiektu JSON (trzeba dodać / włączyć informacje o typie?)
Oto JSON, który próbuję wysłać:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
W kontrolerze mam następującą sygnaturę metody:
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
AllApplesDO to opakowanie ApplesDO:
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
Jabłka DO:
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
}
}
Myślę, że Jackson nie jest w stanie przekonwertować JSON na obiekty Java dla podklas. Proszę o pomoc w parametrach konfiguracyjnych dla Jacksona w celu konwersji JSON na obiekty Java. Korzystam z Spring Framework.
EDYCJA: Uwzględniono główny błąd, który powoduje ten problem w powyższej przykładowej klasie - Proszę spojrzeć na zaakceptowaną odpowiedź na rozwiązanie.