Play Framework Json验证

时间:2015-05-18 18:15:31

标签: json playframework

我正在尝试解析json结构,验证它并使用经过验证的结果。

 def createEntry = Action(parse.tolerantJson) { request =>
  request.body.validate[MyJson].map { myJson =>
    // do something with the MyJson object
  }.recoverTotal { err => BAD_REQUEST }

MyJson对象如下所示:

case class MyJson(
  complexType: ComplexType,
  strs: Seq[String],
  maps: Map[String, ComplexType]
)

case class ComplexType(
  str1: String,
  bool1: Boolean,
  cxType2: ComplexType2,
  maps: Map[String, String]
)

case class ComplexType2(str: String, strs: Seq[String])

validate方法会自动尝试将JSON字符串打包到对象类型中吗?我应该写一个额外的身体解析器吗?

1 个答案:

答案 0 :(得分:0)

假设Format的范围内有适当的ReadsMyJson个对象,是的,response.body.validate会自动将JSON字符串解析为MyJson个实例,如果JSON验证失败,则只输入recoverTotal块(即,请求中的JSON无法解析为MyJson,即使它是有效的JSON字符串)。