Die Play 2.5.x-Dokumente bieten kein Beispiel, das ich verwenden kann, um mein Problem mit der Definition eines impliziten Reads [T] für mein Modell zu sortieren.Compiler-Fehler Liest [T] für Einzelpfad
Könnte jemand bitte darauf hinweisen, was ich falsch mache?
Mein Modell:
case class Entry(id: Int, typ: String, caught: ZonedDateTime)
case class Data(entries: Seq[Entry])
Die folgende Liest für den Entry-Typ ist in Ordnung.
implicit val entryReads: Reads[Entry] = (
(__ \ "id").read[Int] and
(__ \ "typ").read[String] and
(__ \ "caught").read[ZonedDateTime]
)(Entry.apply _)
Das Problem
ist mit meinem Reads[Data]
unten. Der Compiler beschwert sich, dass er statt eines Eintrags eine Daten benötigt.
Gefunden: Reads[api.test.Entry]
erforderlich: Reads[api.test.Data]
implicit val dataReads: Reads[Data] = (JsPath \ "entries").read[Seq[Entry]]
Wenn ich Daten ändern, so dass es mehrere Felder.
case class Data(entries: Seq[Entry], someStr: String)
Dann meine dataReads mit dem Kombinator kompiliert fein.
Das Problem ist meine Daten braucht nicht wirklich, dass String.
Die Play-Dokumentation enthält zahlreiche Beispiele für das Definieren von impliziten Lese-/Schreibvorgängen für Fallklassen mit mehr als einem Feld, aber keinem mit einem einzelnen Feld.
gearbeitet, dank füllen müssen. –