Groovy GPath 中的转义点
Escape dots in Groovy GPath
我正在使用 RestAssured framework in Java, whose documentation contains this note
Note that the "json path" syntax uses Groovy's GPath notation and is not to be confused with Jayway's JsonPath syntax.
我需要验证以下 JSON:
"_source": {
"logSource": {
"logger.name": "LogbackLogger",
},
}
选择器如
_source.logSource.logger.name
或
_source.logSource.logger.name[0]
return 无结果。
我认为这是由于 logger.name
属性 中的点造成的。
如果不进行转义,logger.name
将被解释为好像 name
在 logger
之下,这是不正确的。
如何正确转义 GPath 中的点字符,以便 logger.name
被视为单个 属性 名称?
谢谢!
你有一个小问题。
只需将它包裹在 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'
我正在使用 RestAssured framework in Java, whose documentation contains this note
Note that the "json path" syntax uses Groovy's GPath notation and is not to be confused with Jayway's JsonPath syntax.
我需要验证以下 JSON:
"_source": {
"logSource": {
"logger.name": "LogbackLogger",
},
}
选择器如
_source.logSource.logger.name
或
_source.logSource.logger.name[0]
return 无结果。
我认为这是由于 logger.name
属性 中的点造成的。
如果不进行转义,logger.name
将被解释为好像 name
在 logger
之下,这是不正确的。
如何正确转义 GPath 中的点字符,以便 logger.name
被视为单个 属性 名称?
谢谢!
你有一个小问题。
只需将它包裹在 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'