Я новичок в Scala и в typesafeconfig. У меня следующая проблема - у меня такая конфигурация -
a = [
{
b1 = [
{
c1 = 3,
c2 = 4
}, {
c1 = 3,
c2 = 21
}
]
}, {
b2 = [
{
c1 = 10,
c2 = 56
},
# ...many more elements
]
}
# .
# .
# .many more elements
]
Я смог поместить вышеуказанное в Map[String, ConfigValue], используя следующий код:
val list : Iterable[ConfigObject] = config.getObjectList(PathTo 'a').asScala
val pairs = for {
item: ConfigObject <- list
entry : Entry[String, Config] <- item.entrySet().asScala
key = entry.getKey
value = entry.getValue.atKey(key)
} yield (key, value)
pairs.toMap
На этой карте я получаю ключи как b1, b2 и т. д. - это нормально, но проблема в том, что я получаю значения как ConfigValue (и я не нашел хорошего способа захвата значений List[ConfigObject] или что-то лучше). Так, например, во время выполнения я вижу, что значение, соответствующее ключу b1, имеет две записи — {c1=3, c2=4} и {c1=3, c2=21}, но я не могу пройти по этим двум по одному и добраться до c1 и c2.
Итак, мой вопрос к людям с небольшим опытом работы с TypeSafeConfig и Scala: есть ли лучший способ сделать свою карту, чтобы я мог легко перемещаться по значениям в b1, b2 и т. д., или есть хороший способ преобразовать мое текущее значение, которое является ConfigValue, во что-то лучшее, что можно повторять.
Заранее спасибо!