我有一个关于从 Scala 类渲染 JSON 对象的简单问题。为什么我必须实现反序列化器(读,写)。
我有以下案例类:
case class User(firstname:String, lastname:String, age:Int)
在我的控制器中:
val milo:User = new User("Sam","Fisher",23);
Json.toJson(milo);
我收到编译错误:没有为类型 models.User 找到 Json 反序列化器。尝试为此类型实现隐式写入或格式。
在我之前的项目中,我必须在类中实现一个 reader、writer 对象才能工作,我觉得这很烦人。
object UserWebsite {
implicit object UserWebsiteReads extends Format[UserWebsite] {
def reads(json: JsValue) = UserWebsite(
(json \ "email").as[String],
(json \ "url").as[String],
(json \ "imageurl").as[String])
def writes(ts: UserWebsite) = JsObject(Seq(
"email" -> JsString(ts.email),
"url" -> JsString(ts.url),
"imageurl" -> JsString(ts.imageurl)))
}
}