ケース クラスとコンパニオン オブジェクトがあります。
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)
}
Argonaut を使用して、いくつかの JSON を解析し、Person またはいくつかのエラーをリストとして返したいと考えています。だから私はする必要があります:
- 文字列から JSON を読み取り、文字列が正しい形式であることを検証します
- JSON を Person またはエラー文字列の List にデコードします。
次のような JSON に変換できる形式でエラーを返したいと思います。
{
errors: ["Error1", "Error2"]
}
最初に、Validation[String, X] を返す Argonauts の decodeValidation メソッドを使用してみました。残念ながら、エラーのリストが必要です。
助言がありますか?