1

我在 Java 中使用RestAssured框架,其文档包含此注释

请注意,“json 路径”语法使用Groovy 的 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其视为单个属性名称?

谢谢!

4

1 回答 1

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'
于 2017-06-08T12:04:43.060 回答