我们有一个使用配置文件的应用程序,它们具有数组和普通变量的字段:
metadata {
array=["val1", "val2"]
singleValue=2.0
}
现在,我知道如何提取上述值,例如
config.getStringList("metadata.array").asScala.toArray
和config.getString("metadata.singleValue)
但是,有什么方法可以在这里定义映射,以便我可以从该映射中找到所需键的值。
这个config
是一个对象
公共(public)接口(interface)Config扩展了com.typesafe.config.ConfigMergeable
最佳答案
您可以使用config.getConfig("metadata")获取(子)配置对象。
将(子)配置转换为 map 是您必须自己完成的事情。我会使用config.entrySet()获取条目作为键值,并以这种方式将其加载到映射中。
我还没有尝试编译/测试这段代码,但是这样的东西应该可以工作:
Map<String,Object> metadata = new HashMap<>();
for (Map.Entry<String,ConfigValue> entry : config.entrySet()) {
metadata.put(entry.getKey(), entry.getValue().unwrapped());
}
关于java - 在配置文件中创建 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52450210/