假设我需要解析一个 JSON(见下文)。
{
成功:真
状态码:0
状态消息:“好的”
payload { ... } // 一些实际数据
}
首先,我正在解析“状态”字段以获取case class Status(见下文)的实例
案例类状态(成功:布尔,代码:整数,消息:字符串)
val json = parse(text) // text 是上面的 JSON
val statusList = for {
JObject(obj) <- json
JField("成功", JBool(成功)) <- obj
JField("code", JInt(code)) <- obj
JField("消息", JString(消息)) <- obj
} 产生状态(成功,代码,消息)
是否有意义 ?
的类型statusList是List[Status]。它包含一个Status项目。如果解析失败,statusList则为空。我不喜欢它,因为我想要Option[Status]而不是List[Status]
我可以很容易地转换List[Status]成Option[Status]withheadOption但我想Option[Status]直接得到。
我可以解析 JSONjson4s以获取 Option[Status] 而无需先获取List[Status]吗?