类型安全配置:作为地图获取

Jak*_*ke 4 scala typesafe

googlesheets{
 dmkb_sheet = "1xEC8CPlKn654321wcoS_JB12345cPPiaA0M"
 other_sheet = "123isS0M30TH3R1D"
}
Run Code Online (Sandbox Code Playgroud)

我想使用类似的东西myConfig.getAsMap("googlesheets")并将两个嵌套条目作为地图获取。不存在这样的方法。那么将两个嵌套条目加载为 Map 的最简单方法是什么?

emi*_*ogc 8

对于简单的一些定义,你可以使用这样的东西:

val config = conf.atKey("googlesheets")
config.root.keySet.asScala.map(key ? key ? config.getString(key)).toMap
Run Code Online (Sandbox Code Playgroud)

我认为使用库将配置映射到 case 类会更容易,比如pureconfig


Jak*_*ke 5

好的,这很容易。

myConfig.getConfig("googlesheets").entrySet() 有诀窍

(我专注于具有“get”前缀的方法,所以错过了)