java - Scala 读取并解析 JSON

标签 java json scala

我是 Scala 新手。我有一个名为 scala_input.json 的 JSON 文件,其中包含两项:

{
 "edges_file": "/path/edges.json.gz", 
 "seed_file": "/path/seed.json.gz"
}

我希望打开该文件,从该文件解析并赋予两个 val 属性。我尝试过:

val input_file = "/path/scala_input.json"
val json_data = JSON.parseFull(input_file)
val edges_file = json_data.get.asInstanceOf[Map[String, Any]]("edges_file").asInstanceOf[String]
val seeds_file = json_data.get.asInstanceOf[Map[String, Any]]("seed_file").asInstanceOf[String]]

但是,这会返回java.util.NoSuchElementException:None.get。我还没有定义什么? json_datainput_file 是正确的,我确信 edges_fileseed_file 存在。

最佳答案

JSON.parseFull 需要一个 JSON 字符串,而不是包含此类字符串的文件的路径。所以 - 你应该首先加载文件然后解析它:

val input_file = "./scala_input.json"
val json_content = scala.io.Source.fromFile(input_file).mkString
val json_data = JSON.parseFull(json_content)
// go on from there...

关于java - Scala 读取并解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40172313/

相关文章:

java - 将字符串中的最后一个点替换为美元符号

java - 如何从某个位置开始迭代二维数组?

scala - GKE 上 docker 中的 scala 应用程序未终止系统

scala - 如何让 ScalaTest 在 xml 报告中填充测试运行时?

scala - 如何为 IntelliJ 安装 Scala 插件

java - 每次都需要重建项目以反射(reflect) Android Studio Chipmunk 中的变化

Java 将 float 保留 2 位小数

javascript - 如何从该数组中的值获取特定的 JSON 数组

javascript - 如何等待纹理完成从 Three.js 中的 JSON 模型加载?

javascript - 使用 JSON 和 jQuery 构建列表