gpt4 book ai didi

playframework - Play : the most concise form of JSON validation

转载 作者:行者123 更新时间:2023-12-01 12:41:28 25 4
gpt4 key购买 nike

我想问一个问题,关于Play中JSON验证最简洁的方式!框架

在官方 Play 教程中,我找到了有关 JSON Macro Inception 的主题。它的序列化/反序列化的主要思想看起来很不错:

import play.api.libs.json._

case class Person(name: String, age: Int)

object Person{
implicit val personFmt = Json.format[Person]
}

但是如果我想在此处放置一些验证约束怎么办?例如我想接受 18 - 60 岁?在这种情况下,我应该返回标准的WritesReads 吗?

谢谢

最佳答案

如果您想保留所有验证错误,可以。 Reads 似乎有 filterfilterNot 函数您可以在其中添加自己的验证错误,但它们最终会像这样定义 Reads 一样冗长:

import play.api.libs.json._
import play.api.libs.functional.syntax._

case class Person(name: String, age: Int)

object Person{
implicit val personFmt: Reads[Person] = (
(__ \ "name").read[String] and
(__ \ "age").read[Int](Reads.min(18) keepAnd Reads.max(60))
)(Person.apply _)
}

我通常会使用上面更详细的样式定义我的 Reads,并使用 Json.writes[T] 宏定义 Writes ,因为我通常不需要限制返回给客户端的内容。

关于playframework - Play : the most concise form of JSON validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24126617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com