Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
播放Json异常的2隐式读取或格式_Json_Scala_Playframework - Fatal编程技术网

播放Json异常的2隐式读取或格式

播放Json异常的2隐式读取或格式,json,scala,playframework,Json,Scala,Playframework,这是我的Cout对象: case class Cout (idCout:Int, cout:String) object Cout{ implicit object CoutFormat extends Format[Cout] { def reads(json: JsValue): Cout = Cout( (json \ "idCout").as[Int], (json \ "cout").as[String] ) def write

这是我的Cout对象:

case class Cout (idCout:Int, cout:String)

object Cout{

  implicit object CoutFormat extends Format[Cout] {
    def reads(json: JsValue): Cout = Cout(
      (json \ "idCout").as[Int],
      (json \ "cout").as[String]
    )

    def writes(s: Cout): JsValue = JsObject(Seq(
      "id" -> JsNumber(s.idCout),
      "cout" -> JsString(s.cout)
    ))
  }
}
我试图在使用WS调用Web服务时使用此类:

val cout = response.json.as[Cout]
但scala编译器一直在抱怨:

[RuntimeException: Int expected]
(json \“idCout”)行上。作为[Int],

谁能告诉我我做错了什么

  • 从中得到了例子

您的
格式中有一个输入错误
实例:您正在编写一个
的“id”
字段,但试图读取一个名为
“idCout”
。更改其中一项:

case class Cout (idCout: Int, cout: String)

object Cout {
  implicit object CoutFormat extends Format[Cout] {
    def reads(json: JsValue): Cout = Cout(
      (json \ "idCout").as[Int],
      (json \ "cout").as[String]
    )

    def writes(s: Cout): JsValue = JsObject(Seq(
      "idCout" -> JsNumber(s.idCout),
      "cout" -> JsString(s.cout)
    ))
  }
}
它的工作原理是:

scala> Json.toJson(Cout(1, "test")).as[Cout]
res0: Cout = Cout(1,test)

感谢您的回答,但问题仍然存在。问题来自我的json响应。事实上,我得到的是
{“idCout”:“1”,“cout”:“test”}
并且我的类需要一个Int。我将它更改为字符串,它工作正常。但我仍然不知道为什么idCout是字符串而不是Int