如何使用gson在kotlin中获取json数据?

问题描述 投票:-1回答:2

这是我的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

有人可以帮帮我吗?

android android-studio kotlin gson
2个回答
0
投票

更改

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

data class Detail( @SerializedName("events") val events : List<EventDetail>)

0
投票

你应该像下面这样创建你的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
)
© www.soinside.com 2019 - 2024. All rights reserved.