scala - 简单的 Scala 序列化?

标签 scala serialization

我想在 Scala 中进行序列化——我见过 sjson 之类的东西和 @serializable 注释——但是,我一直无法看到如何让它们处理 1 个主要障碍——库中的类型删除和泛型。

Graph for Scala 为例图书馆。我在我的代码中大量使用它,并希望在我的代码中编写几个将图形保存到磁盘的对象,以供以后分析。但是,很多时候节点和边类型都封装在我拥有的另一个类的泛型类型参数中。如何在不修改库本身以处理反射或通过导入大量 Type Classes 来“弄脏”我的代码的情况下正确序列化这些类(根据如何查看对象的序列化无论如何都完全不令人满意......)?

例子,

class Container[N](val g: Graph[N,DiEdge]) {
   ...
}

// in another file
def myMethod[N](container: Container[N]): Unit = {
   <serialize container somehow here>
}

最佳答案

为了报告我的发现,Java 的 XStream完成了一项非凡的工作——任何东西,无论是泛型还是其他,都可以自动序列化,而无需任何额外的输入。如果您需要一种快速且无需工作的方法来进行序列化,那么 XStream 就是它!

但是,需要注意的是,如果没有您自己的输入,输出的 XML 将不会特别简洁。例如,Scala 的 HashMap 使用的每个内存块都会被记录下来,即使它们中的大多数不包含任何内容!

关于scala - 简单的 Scala 序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8061146/

相关文章:

json - 如何使用Json4s将Map转Json

ruby-on-rails - 使用 rails 3 输出格式化的 json

java - 如何将多个对象写入可序列化文件并在程序再次使用时读取它们?

java - 如何在eclipse中创建一个文件夹来存储序列化对象?

scala - Cats 效应和异步 IO 细节

scala - 为什么我不能在 Scala 中打印调试消息?

scala - 在 Option.getOrElse 上声明 @tailrec

scala - 猫 EitherT.collectRight 找不到替代品[ future ]

c# - 在 asp.net 中序列化 session 状态

javascript - 如何显示 JavaScript 对象?