【发布时间】:2011-11-22 02:39:25
【问题描述】:
我正在尝试在一个抽象类“Animal”上使用 Jackson 注释将 JSON 对象反序列化为 Java 对象:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({@Type(value = Dog.class, name = "chien"),
@Type(value = Cat.class, name= "chat")})
这是一个示例 JSON 字符串:
{
"name": "Chihuahua",
"type": {
"code": "chien",
"description": "Chien mechant"
}
}
问题是JSON对象中的属性“type”也是一个对象。当我尝试反序列化时,我有这个异常:
Caused by: org.codehaus.jackson.map.JsonMappingException: Could not resolve type id '{' into a subtype of [simple type, class Animal]
我尝试使用“type.code”作为“属性”值,但没有。例外是这个
Caused by: org.codehaus.jackson.map.JsonMappingException: Unexpected token (END_OBJECT), expected FIELD_NAME: missing property 'type.code' that is to contain type id (for class Animal)
知道出了什么问题。谢谢。
【问题讨论】:
标签: json polymorphism deserialization jackson