Cómo implementar escrituras Json implícitas de objetos incrustados en Play Framework 2.x
hay dos clasesFoo
yBar
. Foo
contiene un campo deBar
. La pregunta es, ¿cómo implemento un json implícito?Writes
para claseFoo
?
Aquí está el código:
package models
import play.api.libs.json._
case class Foo(id: String, bar: Bar)
object Foo {
implicit val implicitFooWrites = new Writes[Foo] {
def writes(foo: Foo): JsValue = {
Json.obj(
"id" -> foo.id,
"bar" -> foo.bar
)
}
}
}
case class Bar(x: String, y: Int)
object Bar {
implicit val implicitBarWrites = new Writes[Bar] {
def writes(bar: Bar): JsValue = {
Json.obj(
"x" -> bar.x,
"y" -> bar.y
)
}
}
}
Cuando intento compilar, me sale el siguiente error:
No se ha encontrado ningún deserializador Json para modelos de tipo. Barra. Trate de implementar una escritura implícita o un formato para este tipo.
No entiendo este error del compilador, ya que implementé una escritura implícita para la clase models.Bar. ¿Cuál es el problema aquí?