Java 无法在反序列化多态类型时通过Jackson处理Jersey的JSON
我使用JsonTypeInfo将json正确反序列化为适当的子类型Java 无法在反序列化多态类型时通过Jackson处理Jersey的JSON,java,jackson,jersey,dropwizard,Java,Jackson,Jersey,Dropwizard,我使用JsonTypeInfo将json正确反序列化为适当的子类型 @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") public abstract class Car { } public class Audi extends Car { // Getters and Setters } public class Merc extends
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
public abstract class Car {
}
public class Audi extends Car {
// Getters and Setters
}
public class Merc extends Car {
// Getters and Setters
}
对于以下结构-地图信息
这是我的JSON示例
{
info: {
"xyz": {
type: "Audi"
},
"abc": {
type: "Merc"
}
}
}
上述JSON未正确反序列化,并出现错误400:无法处理JSON。这里缺少什么?两件事,JSON不正确,因为属性需要在引号之间:
{
"info": {
"xyz": {
"type": "Audi"
},
"abc": {
"type": "Merc"
}
}
}
第二,尝试将此注释添加到抽象类:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Audi.class, name = "Audi"),
@JsonSubTypes.Type(value = Merc.class, name = "Merc")})
abstract class Car {
它基本上表示子类型和关联的名称 可能“重复”的