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 将被解释为好像 namelogger 之下,这是不正确的。

如何正确转义 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'