我在Java中使用RestAssured框架,其文档包含此note
请注意" 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
被解释为name
位于logger
之下,这不是真的。
如何正确转义GPath中的点字符,以便将logger.name
视为单个属性名称?
谢谢!
答案 0 :(得分: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'