0

我已经使用 Lift 库中的 parse() 函数解析了来自 HTTP API 的响应

val resultObj = parse(response)
val dps = resultObj \\ "dps"
println("dps are "+dps)

我现在有这样的东西:

JObject(List(JField(1410418778,JDouble(0.0)), JField(1410418947,JDouble(0.0)),       JField(1410419163,JDouble(0.0)), JField(1410419314,JDouble(0.0)))

我想从中检索“1410418778”和相应的双精度值,即 0.0。

我尝试了以下方法:

dps.children.foreach(element=>{
  println("element "+element+ "and its extract is Double "+
    element.extract[Double]+" and its String extract is "+
    element.extract[String])
  val child = element.children
  println("element child "+child)
})

输出 ::

element JField(1410420437,JDouble(1.0))and its extract is Double 1.0 and its String extract is 1.0
element child List(JDouble(1.0))

但是 extract[String] 和 extract[Double] 都只给出 JDouble() 字段中的值。我也如何从中提取字符串时间戳?提前致谢!

4

1 回答 1

0

不必要地使答案复杂化。它就像这样直接:

val resultMap : Map[String , Any] = dps.asInstanceOf[JObject].values
    println(resultMap)

从这里得到:

使用 Lift-json 将 Json 值提取为 Map

于 2014-09-11T08:22:36.450 回答