如何在 Typesafe Config 中获取列表列表
How to get a list of lists in Typesafe Config
我有一个 typesafe config 列表列表。基本上我想做的是提取多图。
myconfig {
values = [
[ 'key1', 'value1'],
[ 'key1', 'value2'],
[ 'key2', 'value2'],
[ 'key2', 'value3'],
]
我必须使用的解决方法:
myconfig {
values = {
key1 : [ 'value1' , 'value2' ]
key2 : [ 'value2' , 'value3' ]
}
}
有什么好的方法可以提取列表的原始列表吗?所有函数都需要一条路径,所以一旦我提取 'values' 似乎就没有直接访问内部列表的方法。
您可以在 Config
对象上使用 getList(String path)
来取回 ConfigList
对象。
Java:
config.getList("path.to.keys").stream()
.map(configValue -> (ArrayList) configValue.unwrapped())
.collect(Collectors.toList())
一个 ConfigList
包含 ConfigValue
个实例。在这种情况下,类型安全人员在内部将列表表示为 ArrayList,因此您必须在解包 ConfigValue
对象时进行转换。
上面的代码片段 return 是一个列表的列表。如果要展平列表,请使用 flatMap 而不是 Map 和 return lambda 中的流。
编辑
这是等效的 Scala:
import scala.collection.JavaConversions._
val keys: Map[String, String] = config.getList("path.to.keys")
.map(configValue =>
configValue.unwrapped().asInstanceOf[ArrayList[String]]
)
.foldLeft(Map[String, String]())( (map, list) =>
map + (list(0) -> list(1))
)
我有一个 typesafe config 列表列表。基本上我想做的是提取多图。
myconfig {
values = [
[ 'key1', 'value1'],
[ 'key1', 'value2'],
[ 'key2', 'value2'],
[ 'key2', 'value3'],
]
我必须使用的解决方法:
myconfig {
values = {
key1 : [ 'value1' , 'value2' ]
key2 : [ 'value2' , 'value3' ]
}
}
有什么好的方法可以提取列表的原始列表吗?所有函数都需要一条路径,所以一旦我提取 'values' 似乎就没有直接访问内部列表的方法。
您可以在 Config
对象上使用 getList(String path)
来取回 ConfigList
对象。
Java:
config.getList("path.to.keys").stream()
.map(configValue -> (ArrayList) configValue.unwrapped())
.collect(Collectors.toList())
一个 ConfigList
包含 ConfigValue
个实例。在这种情况下,类型安全人员在内部将列表表示为 ArrayList,因此您必须在解包 ConfigValue
对象时进行转换。
上面的代码片段 return 是一个列表的列表。如果要展平列表,请使用 flatMap 而不是 Map 和 return lambda 中的流。
编辑
这是等效的 Scala:
import scala.collection.JavaConversions._
val keys: Map[String, String] = config.getList("path.to.keys")
.map(configValue =>
configValue.unwrapped().asInstanceOf[ArrayList[String]]
)
.foldLeft(Map[String, String]())( (map, list) =>
map + (list(0) -> list(1))
)