1

每次我搜索有关如何序列化为 XML 的内容时,我都会找到 bean 序列化程序。似乎所有东西都必须被声明为财产,这违背了我的目的。我想在 XML 中序列化复杂的层次结构(当然,直到它们到达原语),从(比如)一个 Dictionary 或 List 作为父对象开始。

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

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

4

3 回答 3

3

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

于 2010-02-01T19:35:10.460 回答
3

我在 JAXB 方面取得了很大的成功,尤其是在 NetBeans 中使用对它的支持时。我知道它支持列表的事实。我没有用地图尝试过,但我怀疑它有效。如果不出意外,只需制作一个包含列表的简单 bean 并将其作为序列化 bean。

于 2010-02-01T19:37:49.630 回答
1

您可以使用标准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>

这当然有弱点;例如,您不能轻松地序列化 aCollections.emptyXXXX()但有一些变通方法。但是因为一切都根据类的公开支持的 API进行,所以持久的 XML 表单对模式更改具有弹性。

我发现它是一种非常有用的 Java 对象持久性机制。

于 2010-02-01T20:06:48.947 回答