Javaの:シリアライズコレクションXML
-
24-09-2019 - |
質問
私のしましたが、XMLにシリアライズする方法について何かを検索するたびに、私は豆のシリアライザを見つけました。すべてが私の目的に反しプロパティとして宣言する必要があるようです。私は(彼らはもちろん、プリミティブに到達するまで)、XMLで複雑な階層をシリアル化親オブジェクトとして(例えば)辞書やリストを開始したい。
のどのようなオプションが自動的にXMLシリアル化のためにあるのですか?の
私は2004年からJAXBへのいくつかの参照を見つけた、それはまだ行くための方法です?
解決
XStreamののライブラリを試してみてください。それは簡単にあなたがそれで投げることができる任意の複雑なオブジェクト階層を直列化されます。
他のヒント
私は、NetBeansでのサポートを使用する場合は特に、JAXBで多くの成功を持っていました。私はそれがリストをサポート事実を知っています。私はマップでそれを試していないが、私はそれが動作します疑います。何もない場合は、単にリストが含まれており、それはシリアル化された豆も聞かせて簡単なBeanを行います。
あなたは標準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のための非常に便利な永続的なメカニズムは、オブジェクトそれ見つけた。