我想用Groovy的ConfigSlurper解析闭包的数据结构(在本例中是一个配置文件)。解析结果将存储在类似于数据结构的对象层次结构中。关于这个数据结构的唯一特别的事实是一些闭包名称在一个闭包中重复自己,例如apple
和。我看起来像ConfigSlurper
内部使用Map
替代现有的值。我想知道ConfigSlurper
是否实际上能够处理这些类型的数据结构。我使用的Groovy版本是1.7.10。或者,我尝试使用GroovyShell
来执行关闭,但执行顺序有一些问题。用Groovy的ConfigSlurper读取嵌套闭包的配置文件
String rules = """
fruits {
apples {
apple {
id = 11
colors {
green {
name = 'test1'
}
green {
name = 'test2'
}
}
}
apple {
id = 12
colors {
green {
name = 'test3'
}
green {
name = 'test4'
}
}
}
}
}
"""
ConfigSlurper configSlurper = new ConfigSlurper()
def config = configSlurper.parse(rules)
println config
我可能会从ConfigSlurper开始,并重写[解析(脚本,URL)方法](https://github.com/groovy/groovy-core/blob/master/src/main/groovy/util/ ConfigSlurper.groovy#L157),但是在简单地查看代码之后,这不会是一个2分钟的工作......我猜测它是在范围变量中找到旧节点,所以使用这不是你所需要的... –