gpt4 book ai didi

java - 在使用 java 的 Rest-assured 执行操作时,无法获取断言的响应正文数据

转载 作者:行者123 更新时间:2023-12-02 04:40:14 26 4
gpt4 key购买 nike

以下是响应正文:

{
"Updated_Fields": [
"a",
"b",
"c",
"d"
],
"Invalid_Fields": [
"cd",
"ab"
]
}

我想检查响应正文是否有

  1. invalid_field block 中有两个字段
  2. “cd”和“ab”应该位于 invalid_field block 中
JSONArray JSONResponseBody = new JSONArray(response.body().asString());

Assert.assertEquals(JSONResponseBody.getJSONObject(0).getString("Invalid_Fields"), "cd");

response.jsonPath().param("Invalid_Fields", "cd");

assertThat( response.asString(), hasJsonPath("Invalid_Fields.ab"));

出现错误

最佳答案

一种方法是使用 gson 这样的库将 String 转换为 Java 对象,然后应用标准 Java 逻辑(下面的示例)

Gson Maven Dependency

private static final List INVALID_DATA = Arrays.asList("cd", "ab");

public static void main(String[] args)
{
String input = "{ \"Updated_Fields\": [ \"a\", \"b\", \"c\", \"d\" ], \"Invalid_Fields\": [ \"cd\", \"ab\" ] }";
Gson gson = new Gson();
FieldData data = gson.fromJson(input, FieldData.class);
System.out.println(isInvalidFields(data.Invalid_Fields));
}

private static boolean isInvalidFields(List<String> Invalid_Fields) {
if(CollectionUtils.isEmpty(Invalid_Fields) || Invalid_Fields.size() != 2) {
return false;
}
return Invalid_Fields.containsAll(INVALID_DATA);
}

映射到此数据的类的定义:

public class FieldData
{

public List<String> Updated_Fields;

public List<String> Invalid_Fields;

}

关于java - 在使用 java 的 Rest-assured 执行操作时,无法获取断言的响应正文数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com