【发布时间】:2018-07-18 07:24:42
【问题描述】:
我有一个案例类,其中每个字段都是可选的,例如:
case class Foo(name: Option[String],
phone: Option[String],
email: Option[String])
我试图为我的案例类创建一个手动解码器,发现解码器类似于:
implicit val decoder: Decoder[Foo] = (c: HCursor) => {
for {
name <- c.downField("name").as[String]
phone <- c.downField("phone").as[String]
email <- c.downField("email").as[String]
} yield {
new Foo(name, phone, email)
}
}
但是检查downField方法,如果没有设置该字段,光标会切换到FailedCursor,所以会报错。
如果没有定义,我怎么能期望某些字段是可选的并返回None?
【问题讨论】: