2015-08-18 73 views
1

我使用的是休息保證的框架來讀取和驗證從一個REST服務響應嵌套列表項的值。我有以下的JSON團塊,從POST調用返回,我需要提取價值「chatNumber」:如何獲得JSON響應BLOB

{ 
    "authorized": true, 
    "guest": { 
     "chatNumber": 371442, 
     "username": "billyBob", 
     "guestId": 37561, 
     "primary": true, 
     "coppaRestricted": false 
    } 
} 

JSON響應已保存到所謂的「響應」的對象。

我想要做的事,如:

String myValue = Response.path("chatNumber"); 

但它不工作。 path()找不到「chatNumber」。我明顯錯過了從「guest」列表項中獲取「chatNumber」值的語法。我不知道,我甚至用正確的語言來描述「客人」 ......

我必須做的就是「chatNumber」從上面的JSON BLOB的價值?

這裏任何幫助將是救命的。

感謝,

沃爾夫

回答

2

因此,具有較好的開發者並幫助比我在這裏工作,這是如何獲得在上面的JSON BLOB chatNumber的價值:

使用以下進口:

import com.jayway.restassured.RestAssured; 
import com.jayway.restassured.response.Response; 
import com.jayway.restassured.path.json.JsonPath; 
import static com.jayway.restassured.RestAssured.given; 

隨着上述(稱爲響應)中列出的JSON響應團塊一個REST POST調用之後已經被捕獲,這樣做:

String myBlob = Response.asString(); 

int chatNumber = JsonPath.with(myBlob).get("guest.chatNumber"); 

那麼,如果我們打印的chatNumber內容在運行時,像這樣:

System.out.println(chatNumber);

我們得到:

371442 

我生命中的兩天時間盡力想出解決辦法。唉....

希望別人會從我的痛苦一點幫助。 :-)

+0

你應該看看文檔,這幾乎是第一個例子。 https://github.com/jayway/rest-assured/wiki/Usage#object-mapping – Johan