玩 2.3 Scala 传递请求变量:丢失"类型"(值 asJson 不是类型参数 A 的成员)



我可以在Action.async块中获取JSON,但我特别想将请求参数"传递"给助手方法JSONtoCaseClass;当我这样做时,它会丢失asJson方法。

我有一个基本的控制器-在的最后一行设置调试断点

def addTeamMember = Action.async {
    implicit request =>
      PimpRequest.JSONtoCaseClass

request.body.asJson=无

CCD_ 4定义如下;在的最后一行设置调试断点

object PimpRequest {
  implicit val projectReads = Json.reads[Project]
  def JSONtoCaseClass[A](implicit request: Request[A]) = {
    val newJSON = request

request.body.asJson=没有这样的实例字段:"asJson"

或者;使编译器给出错误;添加线路

val newJSONProject =  request.body.asJson.getOrElse(throw new InvalidRequest("No JSON found in request"))

提供

值asJson不是类型参数a的成员

那么,如何帮助编译器计算出A类型的请求呢?

enter code here def JSONtoCaseClass[A](请求:请求[AnyContent])

而不是

 def JSONtoCaseClass[A](implicit request: Request[A]) 

AnyContent而不是A)意味着request.body.asJson可用

最新更新