我想将.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这样的事情。
答案 0 :(得分:22)
这样做:
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()
答案 1 :(得分:0)
如果有人来到这里想知道如何在Java中做同样的事情,至少对于游戏2.2.x你可以做到以下几点:
config.underlying().root().render(ConfigRenderOptions.concise());