Jak zaimplementować ukryte Json Writes obiektu osadzonego w Play Framework 2.x

są dwie klasyFoo iBar. Foo zawiera poleBar. Pytanie brzmi, jak zaimplementować implicite jsonWrites dla klasyFoo?

Oto kod:

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
      )
    }
  }
}

Gdy próbuję się skompilować, pojawia się następujący błąd:

Nie znaleziono deserializatora Json dla modeli typu. Bar. Spróbuj zaimplementować niejawne zapisy lub format dla tego typu.

Nie rozumiem tego błędu kompilatora, ponieważ zaimplementowałem niejawne zapisy dla modeli. Klasa klasy. Jaki jest tutaj problem?

questionAnswers(1)

yourAnswerToTheQuestion