You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gson解析多User JSON数组失败,求正确实现方法

解决Gson解析多个User对象的问题

错误原因

  1. 你之前的解析代码指定了错误的目标类型:mutableListOf<String>().javaClass是让Gson解析成字符串列表,但实际接口返回的是User对象数组,类型完全不匹配。
  2. 错误提示Expected BEGIN_ARRAY but was BEGIN_OBJECT,如果确认接口返回格式正确(是[]包裹的数组),大概率是你获取的parsedData存在格式问题,建议先打印输出parsedData确认内容是否符合标准JSON数组格式。

正确解析方式

方式一:解析为User数组

val gson = GsonBuilder().create()
// 直接指定数组类型
val userArray = gson.fromJson(parsedData, Array<User>::class.java)

// 遍历数组处理每个User对象
for (user in userArray) {
    // 示例操作:打印User的title和completed状态
    println("标题:${user.title},是否完成:${user.completed}")
}

方式二:解析为MutableList

由于Java泛型擦除,需要借助TypeToken明确泛型类型:

val gson = GsonBuilder().create()
// 通过TypeToken指定MutableList<User>的类型
val listType = object : TypeToken<MutableList<User>>() {}.type
val userList = gson.fromJson<MutableList<User>>(parsedData, listType)

// 遍历列表处理每个User对象
for (user in userList) {
    println("用户ID:${user.userId},任务ID:${user.id}")
}

内容的提问来源于stack exchange,提问作者gab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:43:34