播放Json-自定义JsResultException

时间:2018-06-20 19:54:02

标签: json scala playframework

我正在尝试使用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 ...,但似乎我需要解析的每个字段的代码过多。

1 个答案:

答案 0 :(得分:1)

使用validate时,您会得到一个错误列表。

json.validate[MyClass] match {
  case JsSuccess(myClass, _) =>
    // do something
  case JsError(errors) =>
    // do something with the errors
}

错误的类型为Seq[(JsPath, Seq[JsonValidationError])]。 您可以将其转换为所需的任何内容。