2016-10-21 108 views
0

我是斯卡拉新手。我有一个JSON文件,标题为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

回答

2

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...