2016-10-21 3 views
0

Я новичок в Scala. У меня есть JSON-файл, озаглавленный scala_input.json, содержащие два элемента:Scala прочитать и разобрать 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_data и input_file являются правильными, и я уверен, что edges_file и seed_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... 

 Смежные вопросы

  • Нет связанных вопросов^_^