代码之家  ›  专栏  ›  技术社区  ›  Dan Rosenstark

Java:序列化集合XML

  •  1
  • Dan Rosenstark  · 技术社区  · 15 年前

    每次我搜索关于如何序列化为XML的内容时,都会找到bean序列化程序。似乎每件事都必须宣布为财产,这违背了我的目的。我想在XML中序列化复杂的层次结构(当然,在它们到达原语之前),从(比如)字典或列表作为父对象开始。

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

    我从2004年开始发现了一些关于JAXB的参考资料,这仍然是可行的方法吗?

    3 回复  |  直到 7 年前
        1
  •  3
  •   Henrik Aasted Sørensen    7 年前

    试试 XStream 图书馆。它可以很容易地序列化任何可以抛出的复杂对象层次结构。

        2
  •  3
  •   Jon    15 年前

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

        3
  •  1
  •   oxbow_lakes    15 年前

    你可以使用 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对象持久机制。

    推荐文章