如何获取json响应blob中的嵌套列表项值

hwamh0ep  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(152)

我正在使用Rest-Assured框架读取和验证来自REST服务的响应。我有以下json blob,从POST调用返回,我需要提取“chatNumber”的值:

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

json响应已保存到名为“Response”的对象中。
我想做的事情如下:

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

但是它不起作用。path()找不到“chatNumber”。显然,我缺少从“guest”列表中获取“chatNumber”值的语法。我甚至不确定我是否使用了正确的语言来描述“guest...”
我必须做什么才能从上面的json blob中获取“chatNumber”的值?
任何帮助都是救命的。
谢谢你,
伍尔夫

a2mppw5e

a2mppw5e1#

因此,在比我更好的开发人员的帮助下,下面是如何在上面的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

我花了两天的时间想弄明白这个。呃...。
希望别人能从我的痛苦中得到一点帮助。:-)

sycxhyv7

sycxhyv72#

非常确定这是正确的格式:
String myValue = Response.jsonPath().getString("guest.chartNumber");

相关问题