2015-08-18 57 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