给定List
个POJO,如果我用XStream序列化它们,我得到:
<list>
<pojo>
<a>a</a>
<b>b</b>
</pojo>
<pojo>
<a>a</a>
<b>b</b>
</pojo>
</list>
如何进行序列化并省略<list> </list>
条目?我已经将addImplicitCollection
用于类似的目的,但是当集合是被序列化的类的成员时,这是为了省略集合实例变量 name 。
注意:This问题似乎相似但不完全相关(我认为)。
答案 0 :(得分:4)
这些天(使用XStream 1.4.1)可以使用“implicit collections”从输出中省略容器元素
答案 1 :(得分:2)
你做不到。想象一下<list>
节点已经消失了--XStream如何知道如何反序列化这个XML?它可以是list / set / array /完全不同的东西。此外,假设您有一个对象,其中包含您的pojo
后跟单个pojo
字段的列表 - 它们会混杂在一起。
也就是说,如果你无意反序化这个,你可以实现自己的流驱动程序和编写器,类似于JSON writer,它会为你删除<list>
。
答案 2 :(得分:1)
XML必须有一个根元素,所以ChssPly76是正确的,但当然如果你是流式传输XML,那么你可以一个接一个地编写每个pojo(从内存角度来看也是如此)。
有关详细信息,请参阅http://x-stream.github.io/objectstream.html。