使用Scala获取较低级别的JSON数据

时间:2015-07-04 22:23:02

标签: java arrays json scala json4s

我是Scala的初学者,我的JSON数据格式如下:

{
    "index_key": {
        "time":"12938473",
        "event_detail": {
            "event_name":"click",
            "location":"US"
        }
    }
}

我正在尝试获取“index_key”的内容,将第二级内容提取为新的JSON对象,并根据第二级数据启动一个类。

{
    "time":"12938473",
    "event_detail": {
        "event_name":"click",
        "location":"US"
    }
}

我尝试使用 json4s 从上面的json中提取出一个Event类,但是如何摆脱作为第一级键的“index_key”?

 case class Detail(event_name: String, location: String)
 case class Event(time: String, event_detail: Detail)

 json.extract[Event]

我已经阅读了json4s文档,还有http://www.scala-lang.org/api/2.10.3/index.html#scala.util.parsing.json.JSON $,但仍然没有得到它,因为看起来预定义的json应该适合解析器?

有谁能告诉我如何获得json结构的二级数据(或任何更低级别)?

1 个答案:

答案 0 :(得分:3)

您可以使用\来获取要提取的对象:

val json = parse(str) \ "index_key"
json.extract[Event]