仅通过Play Json进行验证
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅通过Play Json进行验证相关的知识,希望对你有一定的参考价值。
我想使用PlayJson仅验证某些json的多个字段,而不将其映射到自定义对象。我只关心验证标准的是或否答案。这样可以使用PlayJson吗?到目前为止,我有类似的东西,
val json = .....
val reads = (JsPath "foo").read[String](min(5)) and
(JsPath "bar").read[String](max(10))
json.validate["I ONLY WANT TO VALIDATE NOT MAP"](reads) match {
case s: JsSuccess => true
case e: JsError => false
}
感谢您的Stack Overflow社区。
答案
代替通过Reads[MyModel]
反序列化为案例类模型,我们可以像这样通过Reads[(String, String)]
反序列化为元组
import play.api.libs.json._
import play.api.libs.json.Reads._
import play.api.libs.functional.syntax._
val reads = (
(JsPath "foo").read[String](minLength[String](5)) and
(JsPath "bar").read[String](minLength[String](10))
).tupled
val json = Json.parse(
"""
|{
| "foo": "abcde",
| "bar": "woohoowoohoo",
| "zar": 42
|}
|""".stripMargin)
json.validate(reads).isSuccess
输出
res0: Boolean = true
请注意在创建读取器时如何调用tupled
方法,并在验证过程中使用isSuccess
来获取布尔值。
https://scalafiddle.io/sf/JBjdt2Y/0
以上是关于仅通过Play Json进行验证的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Play 2.7 for Scala 中编写一个通用 JSON 解析器来验证入站请求?
通过 Firebase 身份验证使用 Google Play 游戏
如何通过json暴露play framework 1.2.7中的内部错误消息id?
使用 Google Apps 帐户登录时,在 Android 上对 Google Play 游戏服务进行身份验证会导致错误