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

标签 java json scala loops dictionary

<分区>

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

我有一个很大的字符串形式的 json 数据,我只想提取 review_score 值,我正在使用 import scala.util.parsing.json.JSON 图书馆。

var values = JSON.parseFull(bigJson)

我的问题是,在解析为 json 之后,如何获取 reviewDetails map ?

a screen shot of received values

最佳答案

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

在您的情况下,您要检索的值是映射中的键值对,它本身是全局映射的键值对。

它有点难看,但由于您知道 JSON 的结构,getasInstanceOf 的组合将允许您获取所需的类型值.

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]

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

如果你想要一个可扩展的代码,你可以有效地查看How to parse JSON in Scala using standard Scala classes?

关于java - 在 Scala 中获取 Json 值 scala.util.parsing.json.JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716609/

相关文章:

java - 有没有更简单的方法来读取 *.jar 或文件系统?

rabbithole项目中的Java堆空间错误(Neo4j控制台)

java - 如何在 JavaFX 中使一个区域与另一个区域相等?

php - 如何将 Json 绑定(bind)到 Symfony2 中的实体

java - 如何从Android发送一组数据到php服务器?

javascript - 如何使用 YouTube API 将视频观看次数获取到 Google 电子表格中?

eclipse - Scala Eclipse 文件>new 有<无适用项目>

scala - 如何将 spark DataFrame 转换为 RDD mllib LabeledPoints?

java - Http PUT 请求到 jpeg

Scala:类型不匹配;找到:所需单位: bool 值