播放框架 Json 验证
Play Framework Json Validation
我正在尝试解析 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])
验证方法会自动尝试将 JSON 字符串装入对象类型吗? os 我应该再写一个正文解析器吗?
假设您在 MyJson
范围内有适当的 Format
或 Reads
对象,是的,response.body.validate
会自动将 JSON 字符串解析为MyJson
实例,只有在 JSON 验证失败时才进入 recoverTotal
块(即请求中的 JSON 无法解析为 MyJson
,即使这是一个有效的 JSON 字符串)。
我正在尝试解析 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])
验证方法会自动尝试将 JSON 字符串装入对象类型吗? os 我应该再写一个正文解析器吗?
假设您在 MyJson
范围内有适当的 Format
或 Reads
对象,是的,response.body.validate
会自动将 JSON 字符串解析为MyJson
实例,只有在 JSON 验证失败时才进入 recoverTotal
块(即请求中的 JSON 无法解析为 MyJson
,即使这是一个有效的 JSON 字符串)。