强制播放(Scala)Json复合验证器在第一个失败的验证器

时间:2015-06-26 16:25:48

标签: scala playframework playframework-2.4

我正在为json对象编写自定义验证器。

默认方法是创建案例类T和类型为Reads[T]的隐式阅读器。

这就是我的代码的样子(我为第一个json属性创建了一个简单的"总是失败"验证器,只是为了说明我的观点)。

(第二个验证器看起来有点不同,因为我还需要"id"来验证"body"属性,但是我想让它只在第一个验证成功时才运行。

case class ExecuteQueryModel(datasourceId: Long, body: String)

object ExecuteQueryModel {
  def makeModel(id: Long, tpl: (Long, String)): ExecuteQueryModel = new ExecuteQueryModel(id, tpl._2)

implicit val reads: Reads[ExecuteQueryModel] = (
  (JsPath \ "id").read[Long](x => false) and
    (JsPath). read[(Long, String)](connectionDataIsValid("id", "qbody")))(ExecuteQueryModel.makeModel _)

}

我的问题是,如果第一个验证器失败,我希望整个验证失败,这样当我运行第二个验证器时,我可以指望ID有效。

这可能吗?提前致谢。我正在播放游戏版 2.4.0

0 个答案:

没有答案