3

我正在尝试将 XStream 作为一种将对象快速序列化为 Xml 或 JSON 以通过网络发送和反序列化的方法。我确实希望 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

“冒号”类,或者::,实际上被称为cons,是 Scala 的List. 它用于存储 a 的实际元素List。唯一的另一个List子类是单例对象的类Nil,它表示空列表。

这实际上是对它进行序列化的合理工作,尽管它正在存储子类名称——当你反序列化它时可能会出现问题。

我想知道它是如何序列化Nil的。

于 2009-11-17T22:13:45.697 回答
1

我想出了如何为 Scala 的 List 编写一个转换器来获取 xml,如上所示,请参阅:

如何让 XStream 很好地输出 Scala 列表?我可以写一个自定义转换器吗?

于 2009-11-18T04:09:21.507 回答