2009-11-17 61 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

相关问题