【发布时间】:2015-07-26 14:56:45
【问题描述】:
我的 JSON 结构:
{
...
"type":"post", // Type could vary
"items":[] // Array of items, each item is typeOf("type")
...
}
如何在我的 POJO 中反序列化并正确打包 items 列表:
public class ItemsEnvelope {
private String type;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXTERNAL_PROPERTY,
property = "type",
visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = A.class, name = "A"),
@JsonSubTypes.Type(value = B.class, name = "B"),
@JsonSubTypes.Type(value = C.class, name = "C")
})
private List<Item> items;
interface Item extends Parcelable {}
class A implements Item {
// Bunch of getters/setters and Parcelable methods/constructor
}
class B implements Item {
// Bunch of getters/setters and Parcelable methods/constructor
}
class C implements Item {
// Bunch of getters/setters and Parcelable methods/constructor
}
// Bunch of getters/setters and Parcelable methods/constructor
}
要包裹类型列表,应提供CREATOR 对象,显然,接口不能具有该对象。
我应该使用抽象类而不是接口吗?
【问题讨论】: