java - 请放心验证 JSON 正文是否包含列表中的所有字符串

标签 java json rest-assured hamcrest

基本上,我构建了一个列表,其中包含 JSON 对象的正文字段名称的字符串。

像这样:

List<String> fieldNames = new ArrayList<String>();

然后我使用 Rest-assured 来获取一个 JSON 格式的响应,如下所示:

{
"id": 11,
"name": "CoolGuy",
"age": "80",
}

所以我的列表包含“id”、“name”和“age”。我如何验证 JSON 字段是否与列表中的那些字符串匹配。 WITHOUT 取决于他们的顺序。

我只知道如何验证它包含一个字符串,下面是我使用的整个 JUnit 测试方法:

@Test
public void verifyJSONMatch() {
    given().auth().basic("user", "pass").when()
    .get(getRequestURL).then().body(containsString("id"));      
}

有什么建议吗?

最佳答案

您可以提取响应

ResponseOptions response = given().spec(request)
                    .get("/url_path");

然后解析一个json

DocumentContext parsedJson = JsonPath.parse(response.getBody().asString());
            assertThatJson(parsedJson).field("['id']").isEqualTo("11");

关于java - 请放心验证 JSON 正文是否包含列表中的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51064444/

相关文章:

javascript - jqGrid - 将数据库记录嵌套属性设置为行 ID

JavaScript - 如何使用另一个 JSON 中的 JSON ID 获取值

java - 如何将不同的对象表示反序列化为 POJO?

java - 如何验证返回的状态代码是否成功,即使用 Rest Assured 的任何 2xx HTTP 状态代码?

没有时区概念的 Java 日期和日历(不考虑时区)

java - 尝试添加 swagger 配置以发送带有请求的授权 header 后,应用程序无法启动

java - 使用 selenium 库在本地替换网站上的图像

java - 弹出返回堆栈时 fragment 会被销毁吗?

java - 线程 "main"java.lang.NoClassDefFoundError : io/restassured/response/Response 中出现异常

java - 如何在 RestAssured 中设置 OAuth 领域