json - 如何使用Play with Scala加载JSON文件

标签 json scala playframework

我需要在我的 Controller 之一中加载一个包含城市列表的JSON文件,以便随后将其传递到 View 中。

我将文件放在这里:app/assets/jsons/countriesToCities.json(顺便说一句:这是一个合适的位置,还是应该将其放置在其他位置?)

我已经阅读了文档,可以看到可以从字符串创建JsValue:https://www.playframework.com/documentation/2.4.x/ScalaJson#Using-string-parsing

我想以类似的方式创建一个JsValue。所不同的是,我想从文件而不是从字符串加载内容...不幸的是,我没有找到任何有关如何执行此操作的代码段。
我是否必须使用其他方法将文件读入字符串,然后才对该字符串使用parse方法?

带有答案示例的代码片段将不胜感激! :)

提前非常感谢您!

最佳答案

似乎有关可能重复项的注释是如何从您的app / assets文件夹中读取文件。我的答案是关于如何从流中解析Json。将两者结合起来,您应该会很好。

Json.parse 接受几种不同的参数类型,其中一种是InputStream

val stream = new FileInputStream(file)
val json = try {  Json.parse(stream) } finally { stream.close() }

附言当您在书面文档中找不到所需的内容时,API Docs是一个不错的起点。

关于json - 如何使用Play with Scala加载JSON文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334462/

相关文章:

ios - Firebase:从嵌套的 Childs 中检索信息 (Swift 3)

scala - SBT不会选择指定的mainClass

scala - 我如何将 HashMap[T,Future[N]] 转换为 Future[HashMap[T,N]]

java - 在 Play Framework 中使用 WHERE 子句返回 List<Type>

javascript - 如何在不使用 JQUERY 的情况下连接两个 JSON 对象的 JavaScript 数组?

iphone - RestKit 映射嵌套字典中的值

scala - 困惑如何建立多项目 sbt 项目

java - 系统时区 ID

java - 为 Map<Enum,Integer> 加载 YAML fixture

json - 使用 jq 将 JSON 转换为 CSV