游戏框架:JSON读取单属案例类



我正在尝试创建一个包含单个属性的案例类的json读取,但是我遇到了一个错误"。这是TEH代码:

import play.api.libs.functional.syntax._
import play.api.libs.json.Reads._
import play.api.libs.json.{JsPath, Json, Reads}
case class Feedback(message: String)
object Feedback {
  implicit val reads: Reads[Feedback] = (
      (JsPath  "message").read[String](maxLength[String](2000))
    )(Feedback.apply _)
}

为什么这不起作用?如果我在案例类中添加额外的属性,并且与and连接的多个.read调用,它可以工作...

JSON组合剂不适用于单场案例类。

您可以执行以下操作:

import play.api.libs.json.Reads._
import play.api.libs.json.{__, Reads}
case class Feedback(message: String)
object Feedback {
  implicit val reads: Reads[Feedback] = (__  "message")
    .read[String](maxLength[String](2000)).map {message => Feedback(message)}
}

这是由于当前宏实现的限制。您可以在这里阅读更多有关它的信息:Pacal是此API

的作者

最新更新