使用 Jackson (com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.3
) 并且进展顺利,除了细节。
我有一个这样的课程Foo
public class Foo {
List<Bar> bars;
}
现在,Bar
是一个抽象类,我可以使用自定义反序列化器将 xml 反序列化为对象。这是特别需要的,因为输入的xml是形式
<foo>
<abc:Foo>
....
</abc:Bar>
<def:Bar>
....
</def:Bar>
</foo>
而且我必须从不同的 XSD 映射所有已知的 Foo 实现。
现在,对于对象序列化我想避免编写自定义序列化程序,因为 Jackson 的魔法应该可以很好地从对象读取字段和注释并将它们转换为 XML。唯一的问题是我得到了类似
的输出<foo>
<bars>
....
</bars>
<bars>
....
</bars>
</foo>
因此,Jackson 似乎既没有阅读每个 JacksonXmlRootElement
实现上的 Bar
注释,也没有阅读 JsonRootName
注释。
关于如何通过注释或 ObjectMapper
配置来指导 Jackson 的任何想法?