我正在尝试使用Play Json解析json,使用as
解析单个“字段”。像这样:
val data = (json \ "dataField").as[String]
如果无法解析该字段或无效,则抛出JsResultException。但是,由于我需要以“更简单”的方式输出错误,因此需要设置自定义JsResultException消息。
有没有办法实现这一目标?我可以做类似的事情:
(json \ "dataField").asOpt[String].getOrElse(throw new Exception("Error parsing dataField field."))
,然后匹配Some(data:String)... None ...,但似乎我需要解析的每个字段的代码过多。
答案 0 :(得分:1)
使用validate
时,您会得到一个错误列表。
json.validate[MyClass] match {
case JsSuccess(myClass, _) =>
// do something
case JsError(errors) =>
// do something with the errors
}
错误的类型为Seq[(JsPath, Seq[JsonValidationError])]
。
您可以将其转换为所需的任何内容。