I want to convert a .conf-file directly to json so I can pass it to frontend. Is there a way to do that in scala/play? It seems to be incredibly cumbersome with the path I'm taking now:
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
I'm tempted to go back to JSON, but the HOCON-syntax is perfect for our use-case. HOCON is basicly JSON with less braces and quotes - so conversion should be very straightforward. Still I can't find a simple way to do anything like it with play/scala.
This will do:
val config = ConfigFactory.load(); // read Config here
val configJSON : String =
config.root().render( ConfigRenderOptions.concise() )
This will give you a JSON string.
There are additional options how you want the output formatted. More in the documentation: https://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigValue.html#render()
In case anyone comes here wondering how to do the same thing in Java, at least for play 2.2.x you can do the following:
config.underlying().root().render(ConfigRenderOptions.concise());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With