无法获取Groovy ConfigSlurper来解析字符串并找到结果作为属性

时间:2019-03-10 20:33:35

标签: parsing groovy configuration-files

ConfigSlurper处理我的配置时我遇到了一个非常简单的问题

Groovy版本2.5.6

回到基础知识并尝试这个简单的Groovy脚本:

ConfigSlurper slurper = new ConfigSlurper ()    
slurper.parse ("""host='localhost' """)

println slurper.getProperty('host')

/* gives exception :
Caught: groovy.lang.MissingPropertyException: No such property: host for class: groovy.util.ConfigSlurper
groovy.lang.MissingPropertyException: No such property: host for class: groovy.util.ConfigSlurper
    at scripts.testSSlurper.run(testSSlurper.groovy:7)
 */

为什么这个简单的解析不会失败?

我在这里做错了什么?这是我编写的解析文件实际代码的阻止程序-似乎也没有将任何内容绑定到Slurper中。

1 个答案:

答案 0 :(得分:1)

您的代码示例中有一个误解。解析配置脚本不会使ConfigSlurper对象发生变异,而是返回一个ConfigObject。您要做的就是捕获slurper.parse(script)方法的结果并从返回的host实例中访问ConfigObject键。

ConfigSlurper slurper = new ConfigSlurper()

def config = slurper.parse(""" host = 'localhost' """)

println config.getProperty("host")

输出:

localhost