din*_*p24 5 java xml xsd jaxb jackson
类似于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;
Run Code Online (Sandbox Code Playgroud)
是否可以在Jackson中创建类似的类。即基于XML元素名称来标识类型。
Jackson 可以自动添加此类信息(请参阅@JsonTypeInfo)。例如:
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY)
protected List<Animal> animal;
Run Code Online (Sandbox Code Playgroud)
或者将该注释与@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;
Run Code Online (Sandbox Code Playgroud)
这个链接很有用。