1

POJOListを指定して、それらを XStream でシリアル化すると、次のようになります。

<list>
  <pojo>
     <a>a</a>
     <b>b</b>
  </pojo>
  <pojo>
     <a>a</a>
     <b>b</b>
  </pojo>
</list>

<list> </list>シリアル化を行ってエントリを省略するにはどうすればよいですか? 私はaddImplicitCollection同様の目的で使用しましたが、コレクションがシリアル化されるクラスのメンバーである場合に、 コレクションのインスタンス変数名を省略することでした。

注:この質問は似ていますが、正確には関係ありません(私は思います)。

4

3 に答える 3

4

最近では (XStream 1.4.1 を使用して)、「暗黙のコレクション」を使用して出力からコンテナー要素を省略することができます。

于 2011-09-14T09:39:40.073 に答える
2

できません。ノードがなくなったと想像してください<list>。XStream は、この XML をデシリアライズする方法をどのように知るのでしょうか? リスト/セット/配列/まったく別のものにすることができます。pojoさらに、単一のフィールドが後に続くリストを含むオブジェクトがあると想像してくださいpojo。それらはごちゃ混ぜになります。

とはいえ、これを逆シリアル化するつもりがない場合は、JSON ライターに似た独自のストリーム ドライバーとライターを実装できます<list>

于 2009-11-13T22:58:43.710 に答える
1

XMLには単一のルート要素が必要なのでChssPly76は正しいですが、もちろんXMLをストリーミングしている場合は、各pojoを次々に書き込むことができます(メモリの観点からも意味があります)。

詳細については、http: //x-stream.github.io/objectstream.htmlを参照してください。

于 2010-02-23T23:43:21.610 に答える