Создание карты в конфигурационных файлах - PullRequest
0 голосов
/ 21 сентября 2018

У нас есть одно приложение, в котором мы используем файлы конфигурации, и у них есть поля в виде массивов и обычных переменных:

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

1 Ответ

0 голосов
/ 22 сентября 2018

Вы можете использовать config.getConfig ("metadata") для получения (под) объекта конфигурации.

Преобразование (под) конфигурации в карту - это то, что у вас будетделать самомуЯ бы использовал config.entrySet () , чтобы получить записи как значения ключа и загрузить их в карту таким образом.

Я не пробовал компилировать / тестировать этот код, нокак то так должно работать:

Map<String,Object> metadata = new HashMap<>();
for (Map.Entry<String,ConfigValue> entry : config.entrySet()) {
    metadata.put(entry.getKey(), entry.getValue().unwrapped());
}
...