如何在json响应blob

时间:2015-08-18 02:23:35

标签: json rest-assured

我使用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?

这里的任何帮助都会挽救生命。

谢谢,

沃尔夫

1 个答案:

答案 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

我花了两天时间试图解决这个问题。唉....

希望别人从我的痛苦中得到一点帮助。 : - )