当前位置: 首页 > 知识库问答 >
问题:

格森:爪哇。lang.IllegalStateException:应为BEGIN_对象,但在第1行第184列路径$处为字符串。数据

鲍健柏
2023-03-14

我试图在android上使用谷歌的Gson和Kotlin解析以下json

{
    "status": 0,
    "msg": null,
    "data": {
        "timeTables": [
            {
                "type": "timetable",
                "startTime": "2021-12-13 11:00:00",
                "endTime": "2021-12-13 13:00:00",
                "location": "XXXX",
                "moduleCode": "XXXX",
                "staffName": "XXXX"
            },
            {
                "type": "timetable",
                "startTime": "2021-12-13 14:00:00",
                "endTime": "2021-12-13 16:00:00",
                "location": "XXXX",
                "moduleCode": "XXXX",
                "staffName": "XXXX"
            },
            {
                "type": "timetable",
                "startTime": "2021-12-13 16:00:00",
                "endTime": "2021-12-13 18:00:00",
                "location": "XXXX",
                "moduleCode": "XXXX",
                "staffName": "XXXX"
            }
        ]
    },
    "success": true
}

我使用的模型和代码如下所示:

import com.google.gson.annotations.SerializedName

class TimeTableModel {
    @SerializedName("status")
    val status = 0

    @SerializedName("message", alternate = ["msg"])
    val message : String? = ""

    @SerializedName("success")
    val success = false

    @SerializedName("data")
    val data : TimeTableData = TimeTableData()
}

class TimeTableData {
    @SerializedName("timeTables")
    val timeTables : List<TimeTableListData> = emptyList()
}

class TimeTableListData {
    @SerializedName("startTime")
    val startTime = ""

    @SerializedName("endTime")
    val endTime = ""

    @SerializedName("location")
    val location = ""

    @SerializedName("moduleCode")
    val moduleCode = ""

    @SerializedName("staffName")
    val staffName = ""
}
fun getTimetable() {
    val data = get("$baseAddress/userTimeTable/findCalendarMessage")
    return Gson().fromJson(data, TimeTableModel::class.java) // data is the json above
}

我希望它能正常工作,但每次反序列化时都会引发异常:
Gson:java。lang.IllegalStateException:应为BEGIN_对象,但在第1行第184列路径$处为字符串。数据

我做错了什么?Gson不支持列表反序列化?

共有1个答案

文增
2023-03-14

我复制了上面的内容,它对我很有用。我建议确保数据中的字符串与上面提供的JSON相同。

 类似资料: