使用Play Scala api和Json序列化对象
发布时间:2020-12-16 09:05:46 所属栏目:安全 来源:网络整理
导读:我尝试使用 Scala到Json在play 2.0应用程序中序列化我的模型.这是我的代码的样子: package modelsimport play.api.libs.json._case class Task(id: Long,label: String,date: String)object Task { ... implicit object TaskFormat extends Format[Task] {
我尝试使用
Scala到Json在play 2.0应用程序中序列化我的模型.这是我的代码的样子:
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)的文档似乎也暗示了我采用的方法. 有人发现我的错误吗? 非常感谢, 解决方法
错误消息告诉您问题所在:返回类型必须是
play.api.libs.json.JsResult[models.Task] 所以它看起来像你直接返回任务,而不是将它包装在JsResult中. 我不使用Play,但这是编译器试图告诉你的. 那么,鉴于此,问题是什么?如果您查看Play 2.0文档,它会说读取返回T.但是如果您查看the GitHub source,您会发现它已于2012年8月21日更改为JsResult [T]. 因此,您使用的是比人们提出的建议更新的版本. 我不确定较新的API是否在线,但您可以浏览JSON源here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |