尝试获取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。
编辑:在上面的示例类中包括导致此问题的主要错误-请寻找已接受的答案作为解决方案。
所以,最后我意识到了问题所在。我怀疑这不是杰克逊的配置问题。
实际上问题出在 ApplesDO 类中:
public class ApplesDO {
private String apple;
public String getApple() {
return apple;
}
public void setApple(String apple) {
this.apple = apple;
}
public ApplesDO(CustomType custom) {
//constructor Code
}
}
为该类定义了一个自定义构造函数,使其成为默认构造函数。引入虚拟构造函数使错误消失了:
public class ApplesDO {
private String apple;
public String getApple() {
return apple;
}
public void setApple(String apple) {
this.apple = apple;
}
public ApplesDO(CustomType custom) {
//constructor Code
}
//Introducing the dummy constructor
public ApplesDO() {
}
}
问题内容: 尝试获取JSON请求并处理它时,出现以下错误: org.codehaus.jackson.map.JsonMappingException:未找到类型[简单类型,类com.myweb.ApplesDO]的合适构造函数:无法从JSON对象实例化(需要添加/启用类型信息吗?) 这是我要发送的JSON: 在Controller中,我具有以下方法签名: AllApplesDO是ApplesDO
问题内容: 我有一种方法的资源: 事情: 当我发出如下PUT请求时: 我得到以下回应: 找不到适合类型[简单类型,类Thing]的构造函数:无法从JSON对象实例化(缺少默认构造函数或创建者,或者可能需要添加/启用类型信息?) 为什么Jersey / Jackson不将JSON对象反序列化到POJO中? 问题答案: 您需要一个无参数的构造函数和setter或使用。最简单的方法就是添加带有sette
问题内容: 我尝试测试以下代码没有成功: 因为我已经手动覆盖了默认的构造函数,而不是它的子类。 我该如何解决这个问题? 问题答案: 使其静态。杰克逊无法反序列化内部阶级
问题内容: 我正在实现他们文档中提供的firebase示例。我遇到此错误: com.fasterxml.jackson.databind.JsonMappingException:没有为类型[简单类型,类com.XYZ。$ BlogPost]找到合适的构造函数:无法从JSON对象实例化(需要添加/启用类型信息吗?) 这是我的代码: 我在同一件事上经历了很多问题,说要包含反序列化JSON所需的空构造
问题内容: 我尝试测试以下代码没有成功: 这个问题不同于这个问题: 用Jackson解序列化JSON-为什么JsonMappingException“没有合适的构造函数”? 这个: [JsonMappingException:没有找到适合类型简单类型,类]的构造函数:无法从JSON对象实例化 这个: JsonMappingException:没有找到适合类型[简单类型,类]的构造函数:无法从JSO
下面是我收到错误的代码(在“new”之后的第二个“Killer”处)。 这给我带来了不少麻烦,因为我看不出为什么基于Killer的构造函数,这个声明应该有效。 这是杀手班: 我知道这可能有一个简单的解决方案,但到目前为止,我还没有看到。