Scala Pickling用法MyObject - > Array [Byte] - > MyObject

Bjö*_*obs 5 scala scala-pickling

我试图进入2013年ScalaDays上展示的新Scala Pickling图书馆:Scala Pickling

我真正缺少的是一些简单的例子如何使用库.

我知道我可以像这样腌制一些物体再次破坏它:

import scala.pickling._

val pckl = List(1, 2, 3, 4).pickle
val lst = pckl.unpickle[List[Int]]
Run Code Online (Sandbox Code Playgroud)

在这个例子中,pckl是Pickle类型.究竟什么是这种类型的使用,我怎样才能获得它的数组[字节]?

cmb*_*ter 6

如果你想要腌制成字节,那么代码将如下所示:

import scala.pickling._
import binary._         
val pckl = List(1, 2, 3, 4).pickle
val bytes = pckl.value
Run Code Online (Sandbox Code Playgroud)

如果你想要json,代码看起来几乎完全相同,只需稍微更改一下导入:

import scala.pickling._
import json._         
val pckl = List(1, 2, 3, 4).pickle
val json = pckl.value
Run Code Online (Sandbox Code Playgroud)

如何腌制对象取决于您选择的导入类型scala.pickling(是binary或者json).进口binaryvalue财产是一个Array[Byte].导入json它是一个json String.

  • 是的,cmbaxter是完全正确的.酸洗表示的类型是"Pickle"的子类型.从pickled表示中选择`value`可以得到你期望的类型,`binary的'Array [Byte]`,JSON的`String`等. (2认同)