无法让Groovy ConfigSlurper解析String并将结果作为属性查找

问题描述 投票:1回答:1

我有一个非常简单的问题让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中。

parsing groovy configuration-files
1个回答
1
投票

您的代码示例中存在一个误解。解析配置脚本不会改变ConfigSlurper对象,但会返回ConfigObject。您所要做的就是捕获slurper.parse(script)方法的结果并从返回的host实例访问ConfigObject密钥。

ConfigSlurper slurper = new ConfigSlurper()

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

println config.getProperty("host")

输出:

localhost
© www.soinside.com 2019 - 2024. All rights reserved.