<分区>
我是 Scala 的新手,我想从 json 中提取一些值
我有一个很大的字符串形式的 json 数据,我只想提取 review_score
值,我正在使用 import scala.util.parsing.json.JSON
图书馆。
var values = JSON.parseFull(bigJson)
我的问题是,在解析为 json 之后,如何获取 reviewDetails
map ?
标签 java json scala loops dictionary
<分区>
我是 Scala 的新手,我想从 json 中提取一些值
我有一个很大的字符串形式的 json 数据,我只想提取 review_score
值,我正在使用 import scala.util.parsing.json.JSON
图书馆。
var values = JSON.parseFull(bigJson)
我的问题是,在解析为 json 之后,如何获取 reviewDetails
map ?
最佳答案
parseFull
将返回一个 Option[Any]
,如果 JSON 字符串指定一个数组,它包含一个 List[Any]
,或者一个Map[String,Any]
如果 JSON 字符串指定一个对象,如文档所述。
在您的情况下,您要检索的值是映射中的键值对,它本身是全局映射的键值对。
它有点难看,但由于您知道 JSON 的结构,get
与 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]
请注意,我在这里“安全地”使用了 get
,因为已知该值存在于您的上下文中,但您也可以使用 isEmpty
和 getOrElse
.
如果你想要一个可扩展的代码,你可以有效地查看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 有<无适用项目>