Основываясь на структуре ответа, вам нужно иметь Класс обтекания List<Station>
: применить следующие изменения:
data class ResponseData(
@SerializedName("data") val data: NearestStation
)
data class NearestStation(
@SerializedName("nearststations") val nearestStations: List<Station>
)
Где станция - тот же класс данных, который у вас есть сейчас. Теперь измените сервис модернизации следующим образом:
interface StationService {
@GET("/bus/nearstation/latlon/[lat]/[lon]/[distance].json")
suspend fun getStationData(): Call<ResponseData>
}
Почему? Объект root в объекте JSON состоит из двух полей: code
типа String (обойдено из примера) и data
, который является объектом, состоит из одного поля с именем neareststations
, которое является списком станций. вам нужно следовать той же структуре объекта в вашей модели класса данных.
--- Редактировать:
Вам необходимо изменить следующее в своем коде:
Если вы внесли изменения, о которых я упоминал, в ваш сервис по модернизации, вам нужно изменить тип
val stationData = MutableLiveData<List<Station>>()
на
val stationData = MutableLiveData<ResponseData>()
и изменить
val serviceData = service.getStationData().body()
на
val serviceData = service.getStationData().execute().body()
```.
Pay attention that ```serviceData`` is from type ```ResponseData``` not ```List``` So replace ```?: emptyList()``` with mocked ```ResponseData```