8

我想将 .conf 文件直接转换为 json,以便将其传递给前端。有没有办法在 scala/play 中做到这一点?我现在走的路似乎非常麻烦:

val conf: Configuration = play.api.Configuration.apply(ConfigFactory.parseFile(new File("app/assets/strings.conf")))
conf.entrySet.seq.map(t => t._1 -> t._2.unwrapped())
// which gives me a Seq[(String, AnyRef)] which cannot be converted with Json, so the path from here is even uglier

我很想回到 JSON,但 HOCON 语法非常适合我们的用例。HOCON 基本上是带有较少大括号和引号的 JSON - 所以转换应该非常简单。我仍然找不到一种简单的方法来使用 play/scala 做类似的事情。

4

2 回答 2

25

这将做:

val config = ConfigFactory.load(); // read Config here 

val configJSON : String = 
  config.root().render( ConfigRenderOptions.concise() )

这将为您提供一个 JSON 字符串。

您希望输出格式化的方式还有其他选项。文档中的更多内容: https://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigValue.html#render()

于 2014-11-30T13:05:41.820 回答
1

如果有人来这里想知道如何在 Java 中做同样的事情,至少对于 play 2.2.x,您可以执行以下操作:

config.underlying().root().render(ConfigRenderOptions.concise());
于 2016-06-28T12:21:58.990 回答