Parsing can';不要让Groovy ConfigSlurper解析字符串并将结果作为属性查找

Parsing can';不要让Groovy ConfigSlurper解析字符串并将结果作为属性查找,parsing,groovy,configuration-files,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.MissingPr

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中。

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

ConfigSlurper slurper = new ConfigSlurper()

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

println config.getProperty("host")
输出:

localhost

我如何处理变量…这意味着如果变量中有{host=“localhost”},比如“str”?!localhost在“双引号”中。。我们如何访问像{users{username=“User”}}这样的嵌套元素来回答我自己的评论:首先使用.replaceAll(“\”,“\”)将“”替换为“”,然后访问像config.porperty.subperty.subperty这样的元素。。。