从 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 ...
我有一个这样的对象:
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 ...