【发布时间】:2016-05-12 09:09:51
【问题描述】:
Play 2.5.x 文档没有提供示例,我可以用它来尝试解决我的问题,为我的模型定义隐式 Reads[T]。
谁能指出我做错了什么?
我的模特:
case class Entry(id: Int, typ: String, caught: ZonedDateTime)
case class Data(entries: Seq[Entry])
Entry 类型的以下读取很好。
implicit val entryReads: Reads[Entry] = (
(__ \ "id").read[Int] and
(__ \ "typ").read[String] and
(__ \ "caught").read[ZonedDateTime]
)(Entry.apply _)
问题
下面是我的Reads[Data]。编译器抱怨它需要一个数据而不是一个条目。
找到:Reads[api.test.Entry] 需要:Reads[api.test.Data]
implicit val dataReads: Reads[Data] = (JsPath \ "entries").read[Seq[Entry]]
如果我修改 Data 使其具有多个字段。
case class Data(entries: Seq[Entry], someStr: String)
然后我使用组合器的 dataReads 编译正常。
implicit val dataReads: Reads[Data] = (
(__ \ "entries").read[Seq[Entry]] and
(__ \ "someStr").read[String]
)(Data.apply _)
问题是我的数据并不真正需要那个字符串。
Play 文档包含大量示例,这些示例为具有多个字段但没有一个字段具有单个字段的 Case 类定义隐式读/写。
【问题讨论】:
标签: playframework playframework-2.0