scala 从play 2.8.18返回分块响应时出现编译错误

wnavrhmk  于 2023-05-07  发布在  Scala
关注(0)|答案(1)|浏览(163)

我正在尝试在play框架中使用chunked response。下面的控制器代码工作正常。

def chunkedSample = Action {
  val source = Source.apply(List("Hello","Hai"))
  Ok.chunked(source)
}

但是当我将List对象更改为case类时,如下所示

def chunkedSample = Action {
  val source = Source.apply(List(Dummy("hello")))
  Ok.chunked(source)
}

在这里,我定义了虚拟情况类如下

case class Dummy(hello:String)

我得到下面的编译错误No implicit found for parameter writable:Writable[Dummy]我试图把JSON格式和写在下面的同伴对象,但没有工作。

object Dummy{
  implicit val write = Json.writes[Dummy]
}
qncylg1j

qncylg1j1#

错误告诉您缺少写入,因此需要添加它们。有不同的方法来添加它们,但对于case类,我发现下一个示例是最方便的。它也已经阅读,因为你将最有可能需要它在未来。

case class Dummy(hello: String)

implicit lazy val dummyReads: Reads[Dummy] = (
  (__ \ "hello").read[String]
)(Dummy)

implicit lazy val dummyWrites: Writes[Dummy] = (
  (__ \ "hello").write[String]
)(unlift(Dummy.unapply))

更多文档可以在Play框架官方文档的this页面找到。

相关问题