upickle:序列化/反序列化为js.Array

时间:2015-02-05 02:28:08

标签: scala scala.js

我正在尝试使用upickle和ScalaJs序列化/反序列化以下案例类:

case class Cell(var x: String)
case class Container(var cells: js.Array[Cell] = js.Array())

upickle 0.2.5声称它不知道如何处理js.Arrays,所以我最终这样做了:

object Helper {
  implicit val jsArrayWriter = upickle.Writer[js.Array[Cell]] {
    case array ⇒ writeJs(array: mutable.Seq[Cell])
  }

  implicit val jsArrayReader: Reader[js.Array[Cell]] = upickle.Reader[js.Array[Cell]] {
    case jsValue ⇒ readJs[mutable.Seq[Cell]](jsValue).toJSArray
  }
}

这是处理js.Arrays的最佳方法吗?

1 个答案:

答案 0 :(得分:0)

是的,这是合理的。您可以使用upickle.json.{read/write}使其更加优化。如果您有时间发送Reader/Writer[js.Value]的PR,我们可以将其放入主干。