Java 无法在反序列化多态类型时通过Jackson处理Jersey的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将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 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 {
它基本上表示子类型和关联的名称

可能“重复”的