Implementieren impliziter Json-Schreibvorgänge für eingebettete Objekte in Play Framework 2.x
Es gibt zwei KlassenFoo
undBar
. Foo
enthält ein Feld vonBar
. Die Frage ist, wie ich einen impliziten Json implementiereWrites
für den UnterrichtFoo
?
Hier ist der Code:
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
)
}
}
}
Wenn ich versuche zu kompilieren, wird folgende Fehlermeldung angezeigt:
Kein Json-Deserialisierer für Typmodelle gefunden. Versuchen Sie, ein implizites Schreiben oder Format für diesen Typ zu implementieren.
Ich verstehe diesen Compilerfehler nicht, da ich implizite Schreibvorgänge für die models.Bar-Klasse implementiert habe. Was ist das Problem hier?