在Java中使用SimpleXML序列化可能包含不同类型元素的列表,您可以执行如下操作
class Root {
@ElementListUnion({
@ElementList(entry = "Foo", type = Foo.class, inline = true),
@ElementList(entry = "Bar", type = Bar.class, inline = true)
})
protected List<Object> fooOrBar;
}
这将最终被序列化为
<Root>
<Foo>
{correct Foo serialization}
</Foo>
<Bar>
{correct Bar serialization}
</Bar>
</Root>
是否有@ElementListUnion
的Jackson替代品或解决方法?我可以创建一个自定义序列化器-我如何创建一个只基于类型更改名称的自定义序列化器?
在使用Jackson时,我似乎找不到一种方法来实现同样的效果。使用@JacksonXmlElementWrapper
和/或JacksonXmlProperty
所能得到的最接近的结果类似于
<Root>
<fooOrBar>
{correct Foo serialization}
</fooOrBar>
<fooOrBar>
{correct Bar serialization}
</fooOrBar>
</Root>
1条答案
按热度按时间xv8emn3q1#
目前没有Jackson的@ElementListUnion替代方案或解决方法。