与 JAXB 为给定 XSD 生成 JAXB 类类似,Jackson 是否提供任何实用程序来从 XSD 或 JSON 生成 Jackson 类。
JAXB 类生成器已为定义的 XSD 模式生成了一组类。例如,对于多态类型,JAXB 有以下注释来根据 XML 元素名称来标识名称。
@XmlElements({
@XmlElement(name = "Dog", type = Dog.class),
@XmlElement(name = "Cat", type = Cat.class)
})
protected List<Animal> animal;
是否可以在杰克逊创建类似的课程。即,根据 XML 元素名称来识别类型。
Jackson 可以自动添加此类信息(请参阅@JsonTypeInfo)。例如:
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY)
protected List<Animal> animal;
或者将该注释与 @JsonSubTypes:
一起使用@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = As.PROPERTY,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
@JsonSubTypes.Type(value = Cat.class, name = "Cat")
})
protected List<Animal> animal;
这个链接很有用。