Scala-从包含JSON格式数据的文件中提取值

时间:2018-10-28 21:41:02

标签: json scala

我有一个“ sample.json”文件,其中包含以下JSON数据:

{"query": "SELECT count(*)  FROM TABLE_NAME"}

此文件是由另一个应用程序生成的,位于该应用程序目录中。

我想做的是读取此文件并将键“ query”的值(即TABLE_NAME中的SELECT count(*))提取到val query中。该val query将用于查询数据库。

作为Scala的新手,我对找到的其他答案非常迷失。 在Scala中将文件中的值提取到val query的最简单方法是什么?

除非有必要,否则我不希望使用任何外部库。

1 个答案:

答案 0 :(得分:0)

在scala中有无数种解析JSON的方法。对于您的特定任务,这里有一个建议,假设您的JSON字符串已读入变量jsonStr

import scala.util.parsing.json.JSON

val resultOption = JSON.parseFull(jsonStr) match {
  case Some(map: Map[String, String]) => map.get("query")
  case _ => None
}

现在,如果解析成功,则resultOption将包含包裹在option中的SQL查询字符串(否则它将为None)。接下来,您可能应该检查错误,但是为了简单起见,如果我们盲目地认为一切工作正常,我们现在可以按以下方式访问最终值:

val query = resultOption.get