使用Retrofit+GSON解析API JSON数组遇异常,求解决方法
第二个问题:换成List<App>后字段全为null
这是因为GSON无法正确识别Kotlin类的属性映射,常见原因是类结构不符合GSON的解析要求,解决方法二选一:
方法1:改用data class(推荐)
Kotlin的data class会自动生成符合JavaBean规范的getter/setter,GSON能直接识别字段映射,同时建议把Number换成具体的Int(避免类型转换隐患):
data class App( val id: Int, val name: String ) : Serializable
方法2:给普通类添加注解和无参构造
如果必须用普通类,需要满足两个条件:
- 给字段添加
@SerializedName注解(确保和JSON字段名严格对应); - 提供无参构造函数(GSON默认需要):
class App : Serializable { @SerializedName("id") var id: Int = 0 @SerializedName("name") var name: String = "" // 无参构造 constructor() constructor(id: Int, name: String) { this.id = id this.name = name } }
另外检查Retrofit的GSON配置,确保没有开启特殊的字段过滤规则,同时JSON字段名和类属性名完全一致(大小写敏感)。
内容的提问来源于stack exchange,提问作者Adam Varhegyi
相关产品推荐
相关产品推荐

