![](/img/trans.png)
[英]Polymorphic deserialization of JSON with jackson with type info from parent node
[英]Unable to process JSON from Jersey via Jackson on Deserialization of polymorphic type
我使用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
}
对于以下结构Map<String, Car> info
这是我的示例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 {
它基本上指示子类型和关联的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.