Ich erhalte die folgende Fehlermeldung, wenn ich versuche, eine JSON-Anfrage zu erhalten und zu verarbeiten:
org.codehaus.jackson.map.JsonMappingException: Kein passender Konstruktor für Typ [einfacher Typ, Klasse com.myweb.ApplesDO] gefunden: kann nicht aus JSON-Objekt instanziiert werden (müssen Typinformationen hinzugefügt/aktiviert werden?)
Hier ist das JSON, das ich zu senden versuche:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
Im Controller habe ich die folgende Methodensignatur:
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
AllApplesDO ist ein Wrapper von ApplesDO :
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
ÄpfelDO:
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
}
}
Ich denke, dass Jackson nicht in der Lage ist, JSON in Java-Objekte für Unterklassen zu konvertieren. Bitte helfen Sie mit den Konfigurationsparametern für Jackson, um JSON in Java-Objekte zu konvertieren. Ich verwende Spring Framework.
EDIT: Der Hauptfehler, der dieses Problem verursacht, wurde in die obige Beispielklasse aufgenommen - Bitte sehen Sie sich die akzeptierte Antwort für die Lösung an.