1

XMLにシリアル化する方法について何かを検索するたびに、Beanシリアライザーを見つけました。すべてが財産として宣言されなければならないようで、それは私の目的を破ります。複雑な階層を(もちろんプリミティブに到達するまで)XMLでシリアル化したいのですが、親オブジェクトとして(たとえば)辞書またはリストから始めます。

自動XMLシリアル化にはどのようなオプションがありますか?

2004年からJAXBへの参照をいくつか見つけましたが、それはまだ道のりですか?

4

3 に答える 3

3

XStreamライブラリを試してください。それはあなたがそれに投げることができるどんな複雑なオブジェクト階層も簡単にシリアル化します。

于 2010-02-01T19:35:10.460 に答える
3

特にNetBeansでJAXBのサポートを使用する場合、私はJAXBで多くの成功を収めてきました。私はそれがリストをサポートしているという事実を知っています。マップで試したことはありませんが、うまくいくと思います。他に何もない場合は、リストを含む単純なBeanを作成し、それをシリアル化されたBeanにします。

于 2010-02-01T19:37:49.630 に答える
1

このメカニズムではXMLを介してメソッドを呼び出すことができるため、標準java.bean.XMLEncoder/クラスを使用してコレクションをシリアル化できます。Decoder出力は次のようになります。

<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オブジェクトにとって非常に便利な永続的なメカニズムであることがわかりました。

于 2010-02-01T20:06:48.947 に答える