У меня проблема с типами Java и Gson, когда вызывается из Kotlin
Java POJO представляет собой ответ API и его ошибки
public class ApiResponse { @SerializedName("errors") public List<ApiResponseError> errors; } public class ApiResponseError { @SerializedName("code") public Integer code; @SerializedName("message") public String message; }
Тело ответа HTTP на проводе
{ "errors": [ { "code": 10002, "message": "Not found" } ] }
Код kotlin с использованием Gson для анализа ответа на объекты.
val errorResponse = Gson().fromJson<ApiResponse>(jsonBody, ApiResponse::class.java)
jsonBody
– это строковое представление тела ответа HTTP в предыдущем фрагменте.
Представление отладчика для экземпляров объектов:
Проблема заключается в том, что ArrayList
должен содержать объект ApiResponseError
а не LinkedTreeMap
.
Я попробовал тот же код без общего типа в List<ApiResponseError> errors
, и результат тот же, поэтому я предполагаю, что общая информация теряется где-то, а Gson по LinkedTreeMap
.
Любые подсказки? благодаря