我是一名游戏初学者,并尝试将我的 Web 应用程序从 Play 2.0.4 迁移到新的闪亮 Play 2.1-RC2。由于新的 JSON 处理,我的代码无法编译。
我已阅读Mandubians 博客、Play 2.1 迁移指南和Play JSON 库文档(测试版),但我仍然不确定迁移代码的最佳方法是什么。
前任 我有一个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 值的最佳方法是什么?