我已經閱讀了關於通過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和某些部分?
非常感謝! ;)