在Scala中获取Json值scala.util.parsing.json.JSON

Ala*_*ine 3 java json dictionary loops scala

我是Scala的新手,我想从json中提取一些值

我有一个大的json数据作为字符串,我想只提取review_score值,我使用import scala.util.parsing.json.JSON 库.

var values = JSON.parseFull(bigJson)

我的问题是,在解析为json后,我如何获得reviewDetails地图?

接收值的屏幕截图

Ale*_* C. 9

parseFull将返回一个Option[Any]包含a,List[Any]如果JSON字符串指定数组,或者Map[String,Any]如果JSON字符串指定了一个对象,将返回一个,如文档所述.

在您的情况下,您要检索的值是地图中的键值对,它本身就是全局地图的键值对.

它有点难看,但是既然你知道JSON的结构,那么getwith 的组合asInstanceOf将允许你获得你想要的类型值.

val jsonObject = JSON.parseFull("...")
val globalMap = x.get.asInstanceOf[Map[String, Any]]
val reviewMap = globalMap.get("reviewDetails").get.asInstanceOf[Map[String, Any]]
val reviewScore = reviewMap.get("review_score").get.asInstanceOf[Double]
Run Code Online (Sandbox Code Playgroud)

请注意,这里我使用get"安全",因为已知该值存在于您的上下文中,但您也可以使用isEmptygetOrElse.

如果你想要一个可伸缩的代码,你可以有效地看看如何使用标准的Scala类解析Scala中的JSON?