JSON 요청을 가져 와서 처리하려고 할 때 다음 오류가 발생합니다.
org.codehaus.jackson.map.JsonMappingException : [단순 유형, 클래스 com.myweb.ApplesDO] 유형에 적합한 생성자를 찾을 수 없음 : JSON 객체에서 인스턴스를 생성 할 수 없습니다 (유형 정보를 추가 / 활성화해야합니까?).
보내려는 JSON은 다음과 같습니다.
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
Controller에는 다음과 같은 메소드 서명이 있습니다.
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
AllApplesDO는 ApplesDO의 래퍼입니다.
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
ApplesDO :
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
}
}
Jackson이 JSON을 하위 클래스의 Java 객체로 변환 할 수 없다고 생각합니다. Jackson이 JSON을 Java 오브젝트로 변환하는 구성 매개 변수에 도움을주십시오. Spring Framework를 사용하고 있습니다.
편집 : 위의 샘플 클래스 에서이 문제를 일으키는 주요 버그가 포함되었습니다-해결책에 대한 대답을 찾으십시오.