假设我需要解析一个 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]
吗?