Java Jackson XML反序列化、多态映射

Java Jackson XML反序列化、多态映射,java,xml,jackson,Java,Xml,Jackson,我有以下要反序列化的XML(缩短的示例): 但这种方法存在几个问题: 我不想在@JsonTypeInfo中使用“subject”。相反,我想使用标记名(突出显示、文本等)。我如何从XML中获取这些信息 @JacksonXmlPropert(localName=“subject”)始终为空,因为我将其用于类型信息。为什么?或者如何避开它 还是这种方法已经错了 最后是我使用的周围类: @JacksonXmlElementWrapper(localName = "annots") @JacksonXm

我有以下要反序列化的XML(缩短的示例):

但这种方法存在几个问题:

  • 我不想在@JsonTypeInfo中使用“subject”。相反,我想使用标记名(突出显示、文本等)。我如何从XML中获取这些信息

  • @JacksonXmlPropert(localName=“subject”)始终为空,因为我将其用于类型信息。为什么?或者如何避开它

  • 还是这种方法已经错了

  • 最后是我使用的周围类:

    @JacksonXmlElementWrapper(localName = "annots")
    @JacksonXmlProperty(localName = "annots")
    
    public List<Annotation> annots;
    
    @jacksonxmlementwrapper(localName=“annots”)
    @JacksonXmlProperty(localName=“annots”)
    公共列表注释;
    
    我能够用正确的
    注释
    子类型的
    高亮显示
    文本
    解析此xml,并且主题可见。我必须指定此属性应可见:

    @JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
            include = JsonTypeInfo.As.PROPERTY,
            property = "subject",
            visible = true)
    
    另外,我正在使用jackson 2.8.8和woodstox 5.0.3进行xml解析


    以上内容涉及第2点。关于第1点,我不认为这可以通过
    @JsonTypeInfo
    实现,因为它的整体思想是在生成的xml文档中显式地添加类型信息。你也许能用它解决一些问题。

    你得到第1点的解决方案了吗?不幸的是没有。
    @JacksonXmlElementWrapper(localName = "annots")
    @JacksonXmlProperty(localName = "annots")
    
    public List<Annotation> annots;
    
    @JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
            include = JsonTypeInfo.As.PROPERTY,
            property = "subject",
            visible = true)