尝试获取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对象。请提供杰克逊将JSON转换为Java对象的配置参数的帮助。我正在使用Spring Framework。编辑:在上面的示例类中包括导致此问题的主要错误-请查看已接受的答案以寻求解决方案。
3 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
发生这种情况的原因如下:
您的内部类应定义为静态
private static class Condition { //jackson specific
}
可能是您的类中没有默认的构造函数(更新:事实并非如此)
private static class Condition {
private Long id;
public Condition() {
}
// Setters and Getters
}
可能是您的设置员定义不正确或不可见(例如私人设置员)
添加回答
举报
0/150
提交
取消