我尝试在Scala的Play 2.0应用程序中将我的模型序列化为Json。这是我的代码示例:
很不幸,当我运行应用程序时,出现了以下错误:
package models
import play.api.libs.json._
case class Task(id: Long, label: String, date: String)
object Task {
...
implicit object TaskFormat extends Format[Task] {
def reads(json: JsValue): Task = Task(
(json \ "id").as[Long],
(json \ "label").as[String],
(json \ "date").as[String])
def writes(t: Task): JsValue = JsObject(Seq(
"id" -> JsNumber(t.id),
"label" -> JsString(t.label),
"date" -> JsString(t.date)))
}
}
很不幸,当我运行应用程序时,出现了以下错误:
verriding method reads in trait Reads of type (json: play.api.libs.json.JsValue)play.api.libs.json.JsResult[models.Task]; method reads has incompatible type
我还没有找到解决方案。API文档(http://www.playframework.org/documentation/api/2.0/scala/play/api/libs/json/package.html)似乎也建议采取我现在的方法。
有人发现我的错误了吗?
谢谢,
Joel
JsResult[Task]
。网络上所有的文档似乎都有与我相同的代码(例如http://www.playframework.org/documentation/2.0.1/ScalaJsonGenerics,https://dev59.com/Mmct5IYBdhLWcg3wk-Zq)。 - jokrdef reads(json: JsValue) = JsSuccess(Task( (json \ "id").as[Long], (json \ "label").as[String], (json \ "date").as[String]))
- jokr