JSON 読み取りを介してオブジェクトを構築するときに、定数値を使用したいと思います。
たとえば、クラスは次のようになります。
case class UserInfo(
userId: Long = -1,
firstName: Option[String] = None,
lastName: Option[String] = None
)
そして、読み取りは次のようになります。
implicit val userRead: Reads[UserInfo] = (
(JsPath \ "userId").read[Long] and
(JsPath \ "firstName").readNullable[String] and
(JsPath \ "lastName").readNullable[String]
)(UserInfo.apply _)
しかし、JSON オブジェクトで userId の値を指定する必要はありません。-1 の値が、読み取られる JSON オブジェクトで指定せずに UserInfo オブジェクトで常に作成されるように、Reads をコーディングするにはどうすればよいでしょうか?