2017-06-08 76 views
1

我使用Java中的RestAssured框架,它的文档包含此note逃生点在Groovy GPATH

注意“JSON路径”语法使用Groovy's GPath符号,而不是与Jayway的JsonPath语法相混淆。

我需要验证以下JSON:

"_source": { 
    "logSource": { 
     "logger.name": "LogbackLogger", 
    }, 
} 

而像
_source.logSource.logger.name
_source.logSource.logger.name[0]回报没有结果的选择。

我认为这是由于logger.name属性中的点。 如果没有转义完成,logger.name被解释为namelogger之下,这是不正确的。

如何正确地转义GPath中的点字符,以便logger.name被视为单个属性名称?

谢谢!

回答

1

你有一个微不足道的问题。

只是将它包裹在single quote之间,即'logger.name' 因为有特殊字符。

下面是完整的例子:

def string = """{ "_source": { 
     "logSource": { 
      "logger.name": "LogbackLogger", 
     } 
    } 
}""" 

def json = new groovy.json.JsonSlurper().parseText(string) 
println json.'_source'.logSource.'logger.name' 
+0

感谢您的答复!我已将它推广到Java案例,而且解决方案的确显得微不足道。我只需要添加单引号:'_source.logSource.'logger.name'[0]' –