我想动态生成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/
答案 0 :(得分:1)
您可以使用 kxbmap/configs
这开箱即用地支持FragmentB
。我用它直接将整个配置映射到@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment2, container, false);
GraphView graphView = rootView.findViewById(R.id.graph);
return rootView;
}
。
所以您的示例如下:
FragmentC
答案 1 :(得分:1)
我不确定我是否很好地理解了您的问题...
但是在我看来,您只需要将Map
格式化为类似于 HOCON 的String
。
您以后可以将其写入文件。
希望此代码段是您想要的:
import collection.JavaConverters._
def toHocon(map: java.util.Map[String, AnyRef]): String =
map
.asScala
.map { case (key, value) => s"$key : $value" }
.mkString("block{\n\t", "\n\t", "\n}")
(我为缩进使用了一个 tab 字符,您可以将其替换为更多的 tab 或固定数量的空格)。
答案 2 :(得分:0)
您可以在下面尝试:
myConfig.root().render(com.typesafe.config.ConfigRenderOptions.concise())