Я получаю ответ от удаленного сервера с использованием библиотеки 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')