考虑这个 JSON 数组:
[
{
"type": "xyz-foo",
"info": {
"name": "John",
"age": 20,
"company": "some company"
}
},
{
"type": "xyz-bar",
"info": {
"name": "Tom",
"age": 10,
"school": "some school"
}
}
]
我有一个像这样的POJO
class Pojo {
private String type;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME, property = "type",
include = JsonTypeInfo.As.EXTERNAL_PROPERTY, visible = true)
@JsonSubTypes(value = {@JsonSubTypes.Type(value = FooInfo.class, name = "foo"),
@JsonSubTypes(value = {@JsonSubTypes.Type(value = BarInfo.class, name = "bar")})
private Info info;
}
显然,这是行不通的,因为 type 既不是
foo
也不是 bar
。我收到一条错误消息
无法将类型 ID 'xyz-foo' 解析为
的子类型:已知类型 ids = [foo, bar](对于 POJO 属性“info”)Info
有没有办法根据子串来匹配子类?
要解决此问题,您可以删除此注释
@JsonTypeInfo(...)
你的POJO
class Pojo {
private String type;
private Info info;
// Getter & Setter
}
它会起作用的。让我知道