2009-11-17 62 views
3

我嘗試XStream的作爲一種快速序列化對象到XML或JSON通過線路發送和反序列化。我確實希望XML/JSON簡單/乾淨。Scala是否可以使用XStream序列化?

它似乎運作良好,我已經添加了幾個別名,但現在我已經打了一個問題,這樣的代碼:

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> 

回答

1

的「coloncolon」級,或::,這實際上是所謂的cons,是Scala的List的子類。它用於存儲List的實際元素。唯一的其他子類List是類的單獨的對象Nil,它表示空列表的。

這實際上是做其序列的一個合理的工作,雖然它存儲子類的名字 - 也許一個問題,當你desserialize它。

我不知道它是如何序列化Nil

+0

我試圖找到一個簡單的方法來生成一個Web服務XML輸出,以及由cons生成的xml似乎不適合該類型的使用。我確信我可以實現一個轉換器,我只是想知道我需要實現多少個轉換器:) – 2009-11-17 22:39:33

相關問題