Ho una semplice domanda riguardante il rendering dell'oggetto JSON da una classe Scala. Perché devo implementare il deserializzatore (leggi, scrivi).Rendering JSON con Play! e Scala
Ho la seguente classe di caso:
case class User(firstname:String, lastname:String, age:Int)
E nel mio controller:
val milo:User = new User("Sam","Fisher",23);
Json.toJson(milo);
ottengo errore di compilazione: No JSON deserializzatore trovato per il tipo models.User. Prova ad implementare scritture o formati impliciti per questo tipo.
Nel mio precedente progetto ho dovuto implementare un lettore, un oggetto writer nella classe per farlo funzionare e trovo molto fastidioso.
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)))
}
}