我正在尝试为包含单个属性的案例类创建隐式 JSON Reads,但收到错误“Reads[Nothing] 不符合预期类型”。这是代码:
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 _)
}
为什么这不起作用?如果我向案例类添加额外的属性和多个.read
呼叫加入and
有用...
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 的编写者 https://groups.google.com/forum/?fromgroups=#!starred/play-framework/hGrveOkbJ6U
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)