Recibo el siguiente error cuando intento obtener una solicitud JSON y procesarla:
org.codehaus.jackson.map.JsonMappingException: No se encontró un constructor adecuado para el tipo [tipo simple, clase com.myweb.ApplesDO]: no se puede crear una instancia del objeto JSON (¿necesita agregar / habilitar información de tipo?)
Aquí está el JSON que estoy tratando de enviar:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
En Controller, tengo la siguiente firma de método:
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
AllApplesDO es una envoltura de ApplesDO:
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
Manzanas 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
}
}
Creo que Jackson no puede convertir JSON en objetos Java para subclases. Ayude con los parámetros de configuración para que Jackson convierta JSON en objetos Java. Estoy usando Spring Framework.
EDITAR: Incluyó el error principal que está causando este problema en la clase de muestra anterior. Busque la respuesta aceptada para la solución.