使用scala解析Jsvalue

时间:2016-01-11 21:52:23

标签: json scala parsing

我是斯卡拉的新人。我有一个Json文件,我把它变成了String。然后我将字符串解析为JSValue。现在我正在尝试读取所有值以更新我的数据库,但我不知道如何继续。

puppet:///private/etc...

我的Json就像:

val l = scala.io.Source.fromFile("list.json").getLines().mkString
val result: JsValue = Json.parse(l)

...

我想提取偶数块以使用正确的值更新数据库。

THX。

1 个答案:

答案 0 :(得分:1)

您应该执行以下操作。我希望这些意见是解释性的:

val l = scala.io.Source.fromFile("list.json").getLines().mkString
val result: JsValue = Json.parse(l)

//Create a model to hold your json objects
case class Pic(id: String, width: String, height: String)

//Create a reader that reads your json string to your model(Pic)
implicit val picReads: Reads[Pic] = (
  (JsPath \ "picture_id").read[String] and
    (JsPath \ "width").read[String] and
    (JsPath \ "height").read[String] and
  )(Pic.apply _)

result.validate[List[Pic]] match {
  case s: JsSuccess[List[Pic]] => 
    //Deal with your list of pics here
  case e: JsError => println("Errors: " + JsError.toFlatJson(e).toString())
}