maa*_*asg 8 configuration json typesafe-config
给定嵌套的JSON作为配置,如:
{
app: {
id: "app1"
instances: 2,
servers: [
{ host: "farm1.myco.com", port: 9876 }
{ host: "farm2.myco.com", port: 9876 }
]
}
}
Run Code Online (Sandbox Code Playgroud)
使用typeSafe配置时,是否可以直接在路径中处理数组的元素?
目前我们需要做类似以下的事情,这有点冗长:
val servers = config.getObjectList("app.servers")
val server = servers.get(0).toConfig
val host = server.getString("host")
val port = server.getInt("port")
Run Code Online (Sandbox Code Playgroud)
这样的事情是理想的:
val host = config.getString("app.servers.0.host") ?
TypeSafe API是否支持这样的内容?
实现一个辅助函数,将对象转换为更易于管理的东西。这就是我最终使用的。
def toList(jList:java.util.List[_ <: ConfigObject]) : List[Config] = {
val l = jList.asScala.toList
val slConfig = l.map(item => {
item.toConfig
})
slConfig
}
Run Code Online (Sandbox Code Playgroud)
该函数的使用看起来像
val servers = toList(objectList)
for(server <- servers) {
println(server.getString("host"))
println(server.getString("port"))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6671 次 |
| 最近记录: |