我具有以下JSON格式:
{
"July 2019": [
{
"id": 6783,
"home_team": "Team Name",
...
},
{...}
],
"August 2019" : [
{
"id": 6783,
"home_team": "Team Name",
...
},
{...}
],
...
}
我正在尝试使用gson in到Kotlin类从JSON解析它,为此,我具有以下特点:
inner class Fixture(val id: Int, val home_team: String)
inner class Fixtures(val date: String, val fixtures: ArrayList<Fixture>)
然后我使用OkHTTPClient下载JSON并尝试使用以下方法进行解析:
val body = response.body?.string()
val gson = GsonBuilder().create()
val fixtures = gson.fromJson(body, Array<Fixtures>::class.java).toList()
主体已正确解析(我在调试器中看到了),但是没有创建类,并且LOGCAT给了我:
Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
我认为这是因为日期位于对象而不是数组中,但是我不知道该如何处理。任何帮助将不胜感激。
答案 0 :(得分:0)
我相信具有这种结构的JSON几乎不可能用gson自动解析。因为日期是字段而不是值。但是,如果您事先了解所有字段,那么可以将Fictures类设为
inner class Fixtures(@SerializedName("July 2019") val date1: ArrayList<Fixture> ,
@SerializedName("August 2019") val date2: ArrayList<Fixture>,
//repeat this for every field
....)
例如。