ResponseBody не подвергается десериализации с использованием restassured - PullRequest
0 голосов
/ 13 октября 2018

Когда я пытаюсь десериализовать тело ответа в POJO, тогда устанавливаются нулевые значения, и возникает ошибка ниже, когда JsonIgnoreProperties (ignoreUnknown = true) не используется: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: нераспознанное поле«Город» (класс TestNGMaven.restAssuredProject.WeatherInfo), не помеченный как игнорируемый (6 известных свойств: «влажность», «температура», «погода», «город», «windSpeed», «windDirectionDegree»])

Ниже приведен код, который я использую:

    public class WeatherInfo
{
    private String city;
    private String temperature;
    private String humidity;
    private String weatherDescription;
    private String windSpeed;
    private String windDirectionDegree;
    // getters and setters
}

Используемый метод:

public void getWeatherDetailsForCity(String city) {

        RestAssured.baseURI="http://restapi.demoqa.com/utilities/weather/city";

        Response response= given().
                when().
                get("/"+city)
                .then()
                .extract()
                .response();

        ResponseBody responseBody=response.body();
        //No issues in below code
        System.out.println(responseBody.asString());
        //Exception for the below lines
        WeatherInfo weatherInfo =responseBody.as(WeatherInfo.class);    
        System.out.println(weatherInfo.getCity());

Ошибка: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: нераспознанное поле "Город""(класс TestNGMaven.restAssuredProject.WeatherInfo), не помечен как игнорируемый (6 известных свойств:" влажность "," температура "," weatherDescription "," city "," windSpeed ​​"," windDirectionDegree "]) в [Source: (String) "{" Город ":" Хайдарабад "," Температура ":" 28,5 градусов по Цельсию "," Влажность ":" 62 процента "," WeatherDescription ":" дымка "," WindSpeed ​​":" 1,5 км в час "," WindDirectionDegree ":" Степень "}"

Также изменение города на Город не решает ошибку.

1 Ответ

0 голосов
/ 13 октября 2018

Решил проблему, добавив ниже в класс POJO, где я использовал стиль аннотации GSON

@SerializedName("City")
    @Expose
    private String city;

И десериализовал, используя следующий формат

WeatherInfo weatherInfo =responseBody.as(WeatherInfo.class,ObjectMapperType.GSON);
...