【发布时间】:2012-12-26 19:58:24
【问题描述】:
我是一名游戏初学者,并尝试将我的 Web 应用程序从 Play 2.0.4 迁移到新的闪亮 Play 2.1-RC2。由于新的 JSON 处理,我的代码无法编译。
我已阅读 Mandubians Blog、Play 2.1 Migration guide 和 Play JSON library documentation (beta),但我仍然不确定迁移代码的最佳方法是什么。
F.ex.我有一个名为File 的模型,带有一个隐式读取对象(Play 2.0):
object File {
implicit object FileReads extends Reads[File] {
def reads(json: JsValue) = File(
(json \ "name").as[String],
(json \ "size").as[Long]
)
}
}
我在控制器中这样使用它(Play 2.0):
val file = webserviceResult.json.as[models.File]
Play 2.1 迁移指南告诉我用这样的JsSuccess() 重构它(Play 2.1?):
object File {
implicit object FileFormat extends Format[File] {
def reads(json: JsValue) = JsSuccess(File(
(json \ "name").as[String],
(json \ "size").as[Long]
))
}
}
但是我现在如何使用这种隐式转换呢?
还是像Play for Scala-book 中的Twitter-example 那样使用implicit val-stuff 更好?将 JsValue 转换为它的 Scala 值的最佳方法是什么?
【问题讨论】:
标签: json scala playframework playframework-2.0 playframework-2.1