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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage