使用Gson反序列化Json数据失败,报错JsonSyntaxException: java.lang.IllegalStateException

在使用Gson解析Json时遇到JsonSyntaxException错误,问题源于Json对象嵌套时实体类类型定义错误。解决方案是确保实体类中嵌套对象的类型为下一级对象的实体类,而非List类型。此问题虽基础,但解决过程颇费周折,对于初学者具有一定的学习价值。
摘要由CSDN通过智能技术生成

问题描述:使用Gson解析Json时,解析出错,无法映射为对象,报错提示:JsonSyntaxException: java.lang.IllegalStateException
解决途径:
1.查看报错信息,由于初学者,因此只看出来Gson解析有问题,打印http传回的json数据的确没问题。
2.搜索Gson的使用方法,看到别人做的好像很简单,建实体类,new一个Gson对象,用fromJson映射,做了多次无法解决问题。
3.直到搜到郭霖大神的volley用法详解的时候,其中有一章是自定义volley中的GsonRequest,写了天气中的小例子,我仔细观察发现Json多个嵌套对象的时候,嵌套对象的类型是其属性集合的类名,而不是我所认为的List类型`


public class Status {

    private int errNum;
    public int getErrNum() {
        return errNum;
    }
    public void setErrNum(int errNum) {
        this.errNum = errNum;
    }
    public String getErrMsg() {
        return errMsg;
    }
    public void setErrMsg(String errMsg) {
        this.errMsg = errMsg;
    }
    public RetData getRetData() {
        return retData;
    }
    public void setRetData(RetData retData) {
        this.retData =  retData;
    }
    private String errMsg;
    private RetData retData;

}
//嵌套对象的属性
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值