3

オブジェクトをXmlまたはJSONにすばやくシリアル化してネットワーク経由で送信し、逆シリアル化する方法として、XStreamを試しています。XML/JSON をシンプル/クリーンにしたい。

いくつかのエイリアスを追加しましたが、問題が発生しました。次のコードです。

println(new XStream.toXML(List(1,2,3)))

次の XML が生成されます。

<scala.coloncolon serialization="custom">
  <unserializable-parents/>
  <scala.coloncolon>
    <int>1</int>
    <int>2</int>
    <int>3</int>
    <scala.ListSerializeEnd/>
  </scala.coloncolon>
</scala.coloncolon>

何が起こっているのかと思う、Scala List クラスには独自のカスタム シリアライゼーションがあります...それをオーバーライドする方法があるのだろうか? 私は取得したい:

<list>
  <int>1</int>
  <int>2</int>
  <int>3</int>
</list>
4

2 に答える 2

1

上記のようにxmlを取得するためのScalaのリスト用のコンバーターを作成する方法を理解しました。以下を参照してください。

XStreamにScalaリストをうまく出力させるにはどうすればよいですか?カスタムコンバーターを作成できますか?

于 2009-11-18T04:09:21.507 に答える
1

「coloncolon」クラス、または::、実際にはと呼ばれるcons、は、ScalaのサブクラスですList。の実際の要素を格納するために使用されListます。他の唯一のListサブクラスはNil、空のリストを表すシングルトンオブジェクトのクラスです。

これは実際にはそれをシリアル化するという合理的な仕事をしていますが、サブクラス名を格納しています-おそらくそれを逆シリアル化するときに問題になります。

どうやってシリアル化するのかしらNil

于 2009-11-17T22:13:45.697 に答える