2

ケース クラスとコンパニオン オブジェクトがあります。

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 またはいくつかのエラーをリストとして返したいと考えています。だから私はする必要があります:

  1. 文字列から JSON を読み取り、文字列が正しい形式であることを検証します
  2. JSON を Person またはエラー文字列の List にデコードします。

次のような JSON に変換できる形式でエラーを返したいと思います。

{
  errors: ["Error1", "Error2"]
}

最初に、Validation[String, X] を返す Argonauts の decodeValidation メソッドを使用してみました。残念ながら、エラーのリストが必要です。

助言がありますか?

4

1 に答える 1