Как получить данные JSON в Kotlin, используя GSON? - PullRequest
0 голосов
/ 09 сентября 2018

Это мой json:

{
    "events": [
        {
            "strHomeTeam": "Liverpool",
            "strAwayTeam": "Swansea",
         }
     ]
}

Это моя модель:

data class Detail(@SerializedName("events") val events : EventDetail)
data class EventDetail(val strHomeTeam : String, val strAwayTeam: String)

Это мой код для передачи данных json в модель:

val body = response?.body()?.string()
val gson = GsonBuilder().create()
val eventData = gson.fromJson(body, Detail::class.java)

Но я получаю следующую ошибку:

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 12 path $.events

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Вы должны создать свой класс pojo, как показано ниже

  data class EventsModel(

    @field:SerializedName("events")
    val events: List<EventsItem?>? = null
)

где класс EventsItem должен быть

  data class EventsItem(

    @field:SerializedName("strHomeTeam")
    val strHomeTeam: String? = null,

    @field:SerializedName("strAwayTeam")
    val strAwayTeam: String? = null
)
0 голосов
/ 09 сентября 2018

Изменение

data class Detail( @SerializedName("events") val events : EventDetail)|

Для

data class Detail( @SerializedName("events") val events : List<EventDetail>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...