在RestAssured(Java)中将JSON文件转换为字符串

时间:2018-07-05 14:59:47

标签: java json api rest-assured

我正在使用IntelliJ学习RestAssured;这对我来说是全新的领域。我有一个简单的.json文件,并且我想有一个API响应来断言它是否与上述.json文件相同。

基本上:如果调用的输出等于我在json文件中的输出,那么一切都很好。

我使用了演示restapi.demoqa.com作为快速参考。这就是我现在所拥有的:

@Test
public void ComparewithJSONinResources()
{

    String CityResponse = ?????

    RestAssured.baseURI = "http://restapi.demoqa.com/utilities/weather/city";
    RequestSpecification httpRequest = RestAssured.given();
    Response response = httpRequest.request(Method.GET, "/Hyderabad");
    String responseBody = response.getBody().asString();
    System.out.println(responseBody);

    Assert.assertTrue(responseBody.equals(CityResponse));

    response.body();
}

我有一个名为CityResponse.json的.json文件。为了便于参考,请在位置c:/ CityResponse上说。

是否可以将Json文件转换为字符串以断言API和JSON相等?

1 个答案:

答案 0 :(得分:1)

将JSON与String进行比较将永远不会给出准确的结果,因为您可能会看到空间,制表符(缩进),属性(键值对)排序等方面的不一致。您最好的选择是使用JSON中的一种将JSON解析为POJO许多受欢迎的图书馆(例如Jackson,GSON等)。这种反序列化既需要RestAssured Http响应,又需要从.json文件中读取,并且一旦有了两个Java对象,就可以通过覆盖equals方法来使用标准Java比较。