在配置文件中创建地图

Creating a map in config files

我们有一个使用配置文件的应用程序,它们具有作为数组和普通变量的字段:

metadata {
   array=["val1", "val2"]
   singleValue=2.0
}

现在,我知道如何提取上述这些值,例如

config.getStringList("metadata.array").asScala.toArray

config.getString("metadata.singleValue)

但是,有什么方法可以在这里定义映射,以便我可以从该映射中找到所需键的值。 这个 configpublic interface Config extends com.typesafe.config.ConfigMergeable

您可以使用 config.getConfig("metadata") 获取(子)配置对象。

将(子)配置转换为地图是您必须自己做的事情。我会使用 config.entrySet() 获取条目作为键值,并以这种方式将其加载到地图中。

我还没有尝试过 compiling/testing 这个代码,但是像这样的东西应该可以工作:

Map<String,Object> metadata = new HashMap<>();
for (Map.Entry<String,ConfigValue> entry : config.entrySet()) {
    metadata.put(entry.getKey(), entry.getValue().unwrapped());
}