Jackson:从 XSD 生成 Jackson 类

问题描述 投票:0回答:1

与 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 元素名称来识别类型。

java xml xsd jaxb jackson
1个回答
0
投票

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; 

这个链接很有用。

© www.soinside.com 2019 - 2024. All rights reserved.