首页 > 解决方案 > 如何在 scala 中动态生成类型安全配置(Hocon)文件(生成配置文件)

问题描述

我想动态生成 Hocon 配置。

输入图和

具有以下内容的输出文件

block{
key1 : value
key2 : value
}

Trying to read map
     var myMap = new util.HashMap[String,AnyRef]()
     val myConfig = ConfigFactory.parseMap(myMap)

myConfig.toString print below
Config(SimpleConfigObject({"key":"value"}))

无法弄清楚如何从中提取conf

我尝试了以下选项,但它以 JSON 格式打印

val finalConfig : String =
      myConfig.root().render( ConfigRenderOptions.defaults())
println(finalConfig)

任何其他生成conf以便支持嵌套结构的方法?

编辑:找到的解决方案可以使用 ConfigFactory.withValue https://marcinkubala.wordpress.com/2013/10/09/typesafe-config-hocon/创建嵌套配置

标签: scalatypesafehocon

解决方案


您可以使用kxbmap/configs

这支持play-json开箱即用。我使用它将整个配置直接映射到case classes.

所以你的例子看起来像:

import com.typesafe.config.ConfigFactory
import configs.Configs

val config = ConfigFactory.parseString("""
  block{
    key1 : value
    key2 : value
  }
  """)

config.get[Map[String, String]("block")

推荐阅读