我有一个带点符号的键的地图,但我需要它作为嵌套地图.
[test.key.one: 'value1', text.key.two: 'value2']
现在的结果应该是
[ test: [ key: [ one: 'value1', two: 'value2' ] ] ]
这是我对代码的想法
def extract(String key, String value) { if(key.contains(".")) { def (String target, String subKey) = key.split('\\.', 2) return ["$target": extract(subKey, value)] } else { return ["$key": extractType(value)] } }
但是我想知道是否有任何时髦的魔法在封闭中做这件事,或者在其他好东西的帮助下使其变得更简单.
有一个方便的课程: groovy.util.ConfigSlurper
def map = ['test.key.one': 'value1', 'test.key.two': 'value2'] def props = new Properties() props.putAll(map) println new ConfigSlurper().parse(props) // [test:[key:[two:value2, one:value1]]]
唯一的缺点是它需要java.util.Properties
实例,所以你需要从中创建一个map
.