Попытка проанализировать объект json с использованием generi c в java - PullRequest
0 голосов
/ 17 июня 2020

Я получаю ответ от удаленного сервера с использованием библиотеки okHttp, после получения ответа я анализирую его, используя общий метод c, который заполняет мой список объектов java (я использую GSON для сериализации json string, я создал класс с соответствующими членами и методами). Однако, когда я пытаюсь перебрать список, я получаю ошибку. Это мой код:

    @Test(priority = 5, dataProvider ="pathProvider")
    public void getTestRequest(String path) throws Exception {
        simpleHttpClient = new SimpleHttpClient();
        String uri = BASIC_URL.concat(path);
        String response = simpleHttpClient.sendGetRequest(uri, headersMap);

        JsonArray array = JsonHandler.asList(response, "Search");
        lists = JsonHandler.getJsonAsObject(array.toString(), ImdbClass.class);
        for (ImdbClass item : lists) {
            if (!item.getPoster().equals("N/A")) {
                Reporter.log(item.getPoster());
                System.out.println(item.getPoster());
            }
        }
    }

И это функция, которая используется для анализа ответа getJsonAsObject:

 public static <T> List<T> getJsonAsObject(String toParse , Class<T> clazz){
        Type listType = new TypeToken<List<T>>() {}.getType();
        return GSON.fromJson(toParse, listType);
    }

Теперь я получаю список обратно из функции но когда я выполняю действие l oop над списком, я получаю следующую ошибку:

java.lang.ClassCastException: class com.google.gson.internal.LinkedTreeMap cannot be cast to class com.automation.tests.components.ImdbClass (com.google.gson.internal.LinkedTreeMap and com.automation.tests.components.ImdbClass are in unnamed module of loader 'app')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...