Java:序列化Collection XML

时间:2010-02-01 19:33:53

标签: java xml object-serialization

每次我搜索有关如何序列化为XML的内容时,我都找到了bean序列化程序。似乎一切都必须被宣布为财产,这违背了我的目的。我想在XML中序列化复杂的层次结构(当然,直到它们得到原语),以(比方说)字典或列表作为父对象开始。

自动XML序列化有哪些选项?

我从2004年发现了一些对JAXB的引用,还是要走的路吗?

3 个答案:

答案 0 :(得分:3)

试用XStream库。它可以轻松地序列化您可以抛出的任何复杂对象层次结构。

答案 1 :(得分:3)

我在JAXB上取得了很大的成功,特别是在NetBeans中使用它时。我知道它支持列表。我没有尝试过地图,但我怀疑它有效。如果没有别的,只需创建一个包含列表的简单bean,并将其作为序列化bean。

答案 2 :(得分:1)

您可以使用standard java.bean.XMLEncoder / Decoder类来序列化集合,因为该机制允许通过XML调用方法。输出看起来像一样

<object class="java.util.ArrayList">
  <void method="add">
    <string>Hello</string>
  </void>
  <void method="add">
    <string>World</string>
  </void>
</object>

当然这有弱点;例如,您无法轻松序列化Collections.emptyXXXX(),但有一些解决方法。但由于所有内容都根据类的公开支持的API 工作,因此持久性XML表单可以适应架构更改。

我发现它对Java对象来说是一个非常有用的持久机制。

相关问题