使用scala / play将HOCON(.conf)转换为JSON?

时间:2014-11-30 11:01:00

标签: scala playframework-2.0 hocon

我想将.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这样的事情。

2 个答案:

答案 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());