使用列表映射解析JSON
我不熟悉scala和JSON解析,需要一些帮助。我需要解析复杂的JSON(如下)以获得“dimension”键中的“name”值,即我需要平台和OS_版本 我尝试了多种选择,但不起作用。谢谢你的帮助 这是我尝试过的代码片段,但我无法进一步解析列表。我认为“ANY”关键字导致了一些不匹配/问题使用列表映射解析JSON,json,scala,jackson,json4s,Json,Scala,Jackson,Json4s,我不熟悉scala和JSON解析,需要一些帮助。我需要解析复杂的JSON(如下)以获得“dimension”键中的“name”值,即我需要平台和OS_版本 我尝试了多种选择,但不起作用。谢谢你的帮助 这是我尝试过的代码片段,但我无法进一步解析列表。我认为“ANY”关键字导致了一些不匹配/问题 import org.json4s._ import org.json4s.jackson.JsonMethods._ implicit val formats = org.json4s.DefaultF
import org.json4s._
import org.json4s.jackson.JsonMethods._
implicit val formats = org.json4s.DefaultFormats
val mapJSON = parse(tmp).extract[Map[String, Any]]
println(mapJSON)
//for ((k,v) <- mapJSON) printf("key: %s, value: %s\n", k, v)
val list_map = mapJSON("dimensions")
您需要创建更具体的类来解析数据,如下所示:
case class Dimension(name: String, table: String, column: String)
case class AllData(uuid: String, dimensions: List[Dimension])
val data = parse(tmp).extract[AllData]
val names = data.dimensions.map(_.name)
您需要创建更具体的类来解析数据,如下所示:
case class Dimension(name: String, table: String, column: String)
case class AllData(uuid: String, dimensions: List[Dimension])
val data = parse(tmp).extract[AllData]
val names = data.dimensions.map(_.name)
谢谢这适用于尺寸。我还需要键“Measures”的“name”和“expression”值,它比前面的更复杂:)。再次感谢你的帮助谢谢。这适用于尺寸。我还需要键“Measures”的“name”和“expression”值,它比前面的更复杂:)。再次感谢你的帮助