我正在尝试解析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字符串打包到对象类型中吗?我应该写一个额外的身体解析器吗?
答案 0 :(得分:0)
假设Format
的范围内有适当的Reads
或MyJson
个对象,是的,response.body.validate
会自动将JSON字符串解析为MyJson
个实例,如果JSON验证失败,则只输入recoverTotal
块(即,请求中的JSON无法解析为MyJson
,即使它是有效的JSON字符串)。