从 Scala 中解析的 JObject 访问单个值(Jackson,json4s)

Accessing a Single Value from Parsed JObject in Scala (Jackson, json4s)

我有一个这样的对象:

val aa = parse(""" { "vals" : [[1,2,3,4], [4,5,6,7], [8,9,6,3]] } """)

我想访问第一个 JArray 中的值“1”。

println(aa.values ???)

这是怎么做到的?

谢谢

一种方法是:

val n = (aa \ "vals")(0)(0).extract[Int]
println(n)

另一种方法是使用 case class 解析整个 json :

implicit val formats = DefaultFormats

case class Numbers(vals: List[List[Int]])

val numbers = aa.extract[Numbers]

这样您就可以随心所欲地访问第一个列表的第一个值:

for { list <- numbers.vals.headOption; hd <- list.headOption } println(hd)
// or
println(numbers.vals.head.head)
// or ...