在Scala / Play 2.3.x中验证Json

时间:2014-09-03 20:17:03

标签: json scala playframework-2.0

我在将JSON值转换为字符串以外的任何内容时遇到问题。下面的代码给出了如下错误:

JsError(List((/id,List(ValidationError(error.expected.jsnumber,WrappedArray()))))

但是,如果我将ConfigInfo和ConfigInfoReads的构造函数参数的类型更改为String,则一切都按预期工作。 Play文档显示,从JsNumber到Long和JsBoolean到Boolean的转换应该只是默认工作。

// Defined in my controller
implicit val ConfigInfoReads: Reads[ConfigInfo] = (
  (JsPath \ "id").read[Long] and
  (JsPath \ "newRecord").read[Boolean]
)(ConfigInfo.apply _)

// Defined in my controller
case class ConfigInfo(id: Long, newRecord: Boolean)

// Inside of my controller action
request.body.asJson.map { json =>
  val config = json.validate[ConfigInfo]
}

修改

以下是传递JSON的示例:

{"id":"4","newRecord":"false"}

0 个答案:

没有答案