2017-06-08 75 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]' –