scala json 验证不工作
scala json validation not working
我正在关注 **Play For Scala ** 以验证和解析 Json
像这样将其转换为 JsValue 后,我在控制器中收到了一个请求
val jsonRequest = request.body.asJson.get
我正在尝试像这样验证它
jsonRequest.validate[ReadArtWorkCaseClass].fold(
valid = {
readArtWorkCaseClass =>
log.info("valid block")
Ok("validation successful" )
},
invalid = {
log.info("invalid block")
errors => {
log.info("error block")
BadRequest(JsError.toFlatJson(errors))
}
}
)
我已经为此实现了阅读
case class ReadArtWorkCaseClass(artworkid :String,
artistid :String,
institutionid :String ,
status :String,
groupactivityid:String,
details:String,
pricehistoryid :String,
sku :String,
dimensions :String,
artworkname :String,
artworkseries :String ,
workclassifier :String ,
genreid :String,
artworktype :String,
createddate:String)
object ReadArtWorkCaseClass {
implicit val artworkReads: Reads[ReadArtWorkCaseClass] = (
(JsPath \ "artWorkid").read[String] and
(JsPath \ "artistid").read[String] and
(JsPath \ "institutionid").read[String] and
(JsPath \ "activationStatus").read[String] and
(JsPath \ "groupactivityid").read[String] and
(JsPath \ "details").read[String] and
(JsPath \ "pricehistoryid").read[String] and
(JsPath \ "sku").read[String] and
(JsPath \ "dimensions").read[String] and
(JsPath \ "artworkname").read[String] and
(JsPath \ "artworkseries").read[String] and
(JsPath \ "workclassifier").read[String] and
(JsPath \ "genreid").read[String] and
(JsPath \ "artworktype").read[String] and
(JsPath \ "createddate").read[String]
)(ReadArtWorkCaseClass.apply _)
}
当我尝试通过输入空字段来验证 jsonrequest 时,它不会进入无效块而是运行有效块
请指导我我的错误是什么
(JsPath \ "artWorkid").read(minLength[String](1))
对我有用
我正在关注 **Play For Scala ** 以验证和解析 Json
像这样将其转换为 JsValue 后,我在控制器中收到了一个请求
val jsonRequest = request.body.asJson.get
我正在尝试像这样验证它
jsonRequest.validate[ReadArtWorkCaseClass].fold(
valid = {
readArtWorkCaseClass =>
log.info("valid block")
Ok("validation successful" )
},
invalid = {
log.info("invalid block")
errors => {
log.info("error block")
BadRequest(JsError.toFlatJson(errors))
}
}
)
我已经为此实现了阅读
case class ReadArtWorkCaseClass(artworkid :String,
artistid :String,
institutionid :String ,
status :String,
groupactivityid:String,
details:String,
pricehistoryid :String,
sku :String,
dimensions :String,
artworkname :String,
artworkseries :String ,
workclassifier :String ,
genreid :String,
artworktype :String,
createddate:String)
object ReadArtWorkCaseClass {
implicit val artworkReads: Reads[ReadArtWorkCaseClass] = (
(JsPath \ "artWorkid").read[String] and
(JsPath \ "artistid").read[String] and
(JsPath \ "institutionid").read[String] and
(JsPath \ "activationStatus").read[String] and
(JsPath \ "groupactivityid").read[String] and
(JsPath \ "details").read[String] and
(JsPath \ "pricehistoryid").read[String] and
(JsPath \ "sku").read[String] and
(JsPath \ "dimensions").read[String] and
(JsPath \ "artworkname").read[String] and
(JsPath \ "artworkseries").read[String] and
(JsPath \ "workclassifier").read[String] and
(JsPath \ "genreid").read[String] and
(JsPath \ "artworktype").read[String] and
(JsPath \ "createddate").read[String]
)(ReadArtWorkCaseClass.apply _)
}
当我尝试通过输入空字段来验证 jsonrequest 时,它不会进入无效块而是运行有效块
请指导我我的错误是什么
(JsPath \ "artWorkid").read(minLength[String](1))
对我有用