在配置文件中创建地图
Creating a map in config files
我们有一个使用配置文件的应用程序,它们具有作为数组和普通变量的字段:
metadata {
array=["val1", "val2"]
singleValue=2.0
}
现在,我知道如何提取上述这些值,例如
config.getStringList("metadata.array").asScala.toArray
和config.getString("metadata.singleValue)
但是,有什么方法可以在这里定义映射,以便我可以从该映射中找到所需键的值。
这个 config
是
public 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());
}
我们有一个使用配置文件的应用程序,它们具有作为数组和普通变量的字段:
metadata {
array=["val1", "val2"]
singleValue=2.0
}
现在,我知道如何提取上述这些值,例如
config.getStringList("metadata.array").asScala.toArray
和config.getString("metadata.singleValue)
但是,有什么方法可以在这里定义映射,以便我可以从该映射中找到所需键的值。
这个 config
是
public 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());
}