У меня есть случай класса и сопутствующий объект:Scalaz проверки с Аргонавт
case class Person private(name: String, age: Int)
object Person {
def validAge(age: Int) = {
if (age > 18) age.successNel else "Age is under 18".failureNel
}
def validName(name: String) = {
name.successNel
}
def create(name: String, age: Int) = (validAge(age) |@| validName(name))(Person.apply)
}
Я хочу использовать Аргонавт, чтобы разобрать некоторые JSON и возвращать лицо или несколько ошибок, в виде списка. Поэтому мне нужно:
- Прочитайте JSON из строки и проверки строка правильно формируется
- Расшифруйте JSON в Person, или список строк ошибок.
Я хочу, чтобы возвращать ошибки в форме чего-то я могу превратиться в еще некоторые JSON, как:
{
errors: ["Error1", "Error2"]
}
я впервые попытался использовать метод аргонавты decodeValidation, который возвращает Validation [String, X]. К сожалению, мне нужен список ошибок.
Любые предложения?
Я не уверен, что есть хороший ответ, но вы всегда можете использовать 'decodeValidation' с' jdecode2L ((a: String, b: Int) => (a, b)) ("name", "age") ', чтобы получить кортеж, а затем переключиться на' ValidationNel'. –
У вас есть пример? Извините, я действительно новичок в Scala. –