每次我搜索有关如何序列化为XML的内容时,我都找到了bean序列化程序。似乎一切都必须被宣布为财产,这违背了我的目的。我想在XML中序列化复杂的层次结构(当然,直到它们得到原语),以(比方说)字典或列表作为父对象开始。
自动XML序列化有哪些选项?
我从2004年发现了一些对JAXB的引用,还是要走的路吗?
答案 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对象来说是一个非常有用的持久机制。