我从播放2.4升级到2.6,但出现了编译时错误
[error] myproject/app/models/jsonparsing/DirectUserSignUpJsonValidation.scala:27: overloaded method value filter with alternatives:
[error] (error: play.api.libs.json.JsonValidationError)(f: String => Boolean)play.api.libs.json.Reads[String] <and>
[error] (f: String => Boolean)play.api.libs.json.Reads[String]
[error] cannot be applied to (play.api.data.validation.ValidationError)
[error] filter(ValidationError("Password length is less than 8"))(_.length >= 8).
这是代码
case class DirectUserSignUpValidation(firstName: String,
lastName: String,
email: String,
password: String) extends Serializable
object DirectUserSignUpValidation {
var validationErrorMsg=""
implicit val readDirectUser: Reads[DirectUserSignUpValidation] = (
(JsPath \ "firstName").read(minLength[String](1)) and
(JsPath \ "lastName").read(minLength[String](1)) and
(JsPath \ "email").read(email) and
(JsPath \ "password").read[String].
filter(ValidationError("Password length is less than 8"))(_.length >= 8).
filterNot(ValidationError("Password is all numbers"))(_.forall(_.isDigit)).
filterNot(ValidationError("Password is all letters"))(_.forall(_.isLetter))
)(DirectUserSignUpValidation.apply _)
}
答案 0 :(得分:0)
新的play-json库现在可以与JsonValidationError
一起使用,而您正在使用旧的ValidationError
。