【发布时间】:2016-06-06 15:20:34
【问题描述】:
我试图解释得更好。
我正在从一个 json 字符串解析一个 json 文件,例如:
[
{
"album": "The White Stripes",
"year": 1999,
"US_peak_chart_post": 55
},
{
"album": "De Stijl",
"year": 2000,
"US_peak_chart_post": 66
}
]
到Seq[Album]:
import org.json4s._
import org.json4s.jackson.JsonMethods._
import scala.util.{Failure, Success, Try}
object AlbumsHandler{
implicit val formats = DefaultFormats
def extractAlbumsFromJsonFile(json: String): Seq[Album] = {
val jValues: Try[JValue] = Try(parse(json))
val albums: Seq[Album] = jValues.map(
value => value.extract[Seq[Album]]
).getOrElse(Seq())
albums
}
}
通过提供Album 的case class 作为“蓝图”:
case class Album(album: String, year: Int, US_peak_chart_post: Int)
有没有办法做我已经在做的事情,从我的 JSON 中自动提取 Seq[Album],而无需将 case class 指定为蓝图?
非常感谢
【问题讨论】: