我使用Rest-Assured框架来读取和验证来自REST服务的响应。我有一个从POST调用返回的以下json blob,我需要提取" chatNumber"的值:
{
"authorized": true,
"guest": {
"chatNumber": 371442,
"username": "billyBob",
"guestId": 37561,
"primary": true,
"coppaRestricted": false
}
}
json响应已保存到名为" Response"。
的对象中我想做类似的事情:
String myValue = Response.path("chatNumber");
但它没有用。 path()无法找到" chatNumber"。我明显缺少的语法是获得" chatNumber"价值来自"客人"物品清单。我不确定我是否使用正确的语言描述"客人" ...
我必须做些什么来获得" chatNumber"的价值?来自上面的json blob?
这里的任何帮助都会挽救生命。
谢谢,
沃尔夫
答案 0 :(得分:2)
所以,在比我工作的Devs更好的帮助下,这是如何在上面的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;
在REST POST调用之后已经捕获了上面列出的json响应blob(称为Response),请执行以下操作:
String myBlob = Response.asString();
int chatNumber = JsonPath.with(myBlob).get("guest.chatNumber");
然后,如果我们在运行时打印chatNumber
的内容,如下:
System.out.println(chatNumber);
我们得到:
371442
我花了两天时间试图解决这个问题。唉....
希望别人从我的痛苦中得到一点帮助。 : - )