Play 2.5.x文檔沒有提供一個示例,我可以用它來爲我的模型定義一個隱式Reads [T],嘗試排序我的問題。編譯器錯誤爲單一路徑讀取[T]
有人能指出我做錯了嗎?
我的模型:
case class Entry(id: Int, typ: String, caught: ZonedDateTime)
case class Data(entries: Seq[Entry])
下讀取的條目類型是罰款。
implicit val entryReads: Reads[Entry] = (
(__ \ "id").read[Int] and
(__ \ "typ").read[String] and
(__ \ "caught").read[ZonedDateTime]
)(Entry.apply _)
問題
是我下面的Reads[Data]
。編譯器抱怨它需要一個數據而不是一個Entry。
發現:Reads[api.test.Entry]
要求:Reads[api.test.Data]
implicit val dataReads: Reads[Data] = (JsPath \ "entries").read[Seq[Entry]]
如果我修改數據,以便它有多個領域。
case class Data(entries: Seq[Entry], someStr: String)
然後我的dataReads使用combinator編譯好。
implicit val dataReads: Reads[Data] = (
(__ \ "entries").read[Seq[Entry]] and
(__ \ "someStr").read[String]
)(Data.apply _)
問題是我的數據並不真的需要該字符串。
Play文檔包含大量的示例,它們爲多個單個字段但沒有單個字段的Case類定義隱式Reads/Writes。
工作,謝謝。 –