Estou recebendo o seguinte erro ao tentar obter uma solicitação JSON e processá-la:
org.codehaus.jackson.map.JsonMappingException: nenhum construtor adequado encontrado para o tipo [tipo simples, classe com.myweb.ApplesDO]: não é possível instanciar a partir do objeto JSON (é necessário adicionar / ativar informações de tipo?)
Aqui está o JSON que estou tentando enviar:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
No Controller, tenho a seguinte assinatura de método:
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
AllApplesDO é um wrapper do ApplesDO:
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
MaçãsDO:
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
}
}
Eu acho que Jackson não consegue converter JSON em objetos Java para subclasses. Por favor, ajude com os parâmetros de configuração para Jackson converter JSON em objetos Java. Estou usando o Spring Framework.
EDIT: Incluído o principal erro que está causando esse problema na classe de amostra acima - Por favor, procure a resposta aceita para solução.