【问题标题】:Is pretty XStream serialization feasible with Scala?Scala 是否可以进行漂亮的 XStream 序列化?
【发布时间】:2010-12-17 15:12:41
【问题描述】:

我正在尝试将 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>

【问题讨论】:

    标签: xml json scala xstream


    【解决方案1】:

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

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

    不知道怎么序列化Nil

    【讨论】:

    • 我试图找到一种简单的方法来为 web 服务生成 XML 输出,而 cons 生成的 xml 似乎不适合这种类型的使用。我确定我可以实现一个转换器,我只是想知道我需要实现多少个转换器:)
    【解决方案2】:

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

    How can I get XStream to output Scala lists nicely? Can I write a custom converter?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 2012-11-18
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多