我已经阅读了关于通过Scala中的配置文件迭代集合的其他线程,但他们始终认为所讨论的类型是ConfigList或ObjectList。就我而言,这是一个更复杂的结构,我无法弄清楚如何访问它的元素。通过从配置文件加载的复杂Scala集合中迭代
在我的配置文件中,我需要有一组元组,而不会对集合类型过于挑剔。举例来说,我愿意用一个元组列表或地图[字符串,列表],等等类似如下(从application.conf):
myprogr {
groupsOfSomeStuff
{
group_1 -> {
name = "name1",
url = "url1",
something = "whatever"
},
...,
group_n -> {
name = "namen",
url = "urln",
something = "whatever"
}
}
}
在上面conf文件的那一刻,我只能打印整个groupsOfSomeStuff但我不能访问任何个别要素:
var conf = ConfigFactory.load()
println(conf.getObject("myprogr.groupsOfSomeStuff"))
返回:
SimpleConfigObject({"group_1 ->":{"something":"whatever","name":"name1","url":"url1"}, ..., "group_n ->":{"something":"whatever","name":"namen","url":"urln"})
如果我尝试打印conf.getOb jectList或conf.getConfList我在运行时得到一个错误,导致从conf文件中提取的内容不是一个列表,而是一个对象。如果我在conf文件中用“:”或“=”替换“ - >”(因为正如我写的,我对不同类型的集合开放),情况也会发生同样的情况。
如果我尝试分配conf.getObject(“myprogr.groupsOfSomeStuff”)类型为SimpleConfigObject的VAR(以迭代通过其“价值”地图属性的元素的意图),我得到一个编译期时间错误“SimpleConfigObject无法从此位置访问”。
如何遍历group_1,...,group_n元素并单独访问每个条目的值的名称,url和某些部分?
非常感谢! ;)