android 关于使用gson 解析json数据

foundMy 发布于 2016/06/27 17:20
阅读 755
收藏 0

我使用的是谷歌提供的gson解析json数据。json数据如下"

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 21 path $.data

{"flag":"0","data":{"id":"176","loginName":"18224006722","name":"18224006722","phone":"18224006722","mobile":"18224006722","loginToken":"c4b23c48bcc7a9bf4f4301cfeca4c3d2","isStoreAdm":"1","storeLogo":""},"tcount":0}
";网络方面我使用的是
OkHttpUtils。
使用自定义的
StringCallback()
public abstract class LoginCall extends Callback<Login>{ @Override  public Login parseNetworkResponse(Response response) throws Exception {
        String result = response.body().string();
        Gson gson=new Gson(); return gson.fromJson(result,Login.class);
    }
}
java实体类我使用的是GsonFormat自动生成的而且还序列化了的,结果就是要报这个异常,求解答。
哦哦,我不使用gson解析可以获取到json字符串,
java实体类:
public class Login implements Serializable{ private String flag; private DataBean data; private int tcount; public String getFlag() { return flag;
    } public void setFlag(String flag) { this.flag = flag;
    } public DataBean getData() { return data;
    } public void setData(DataBean data) { this.data = data;
    } public int getTcount() { return tcount;
    } public void setTcount(int tcount) { this.tcount = tcount;
    } public static class DataBean implements Serializable{ private String id; private String loginName; private String name; private String phone; private String mobile; private String loginToken; private String isStoreAdm; private String storeLogo; public String getId() { return id;
        } public void setId(String id) { this.id = id;
        } public String getLoginName() { return loginName;
        } public void setLoginName(String loginName) { this.loginName = loginName;
        } public String getName() { return name;
        } public void setName(String name) { this.name = name;
        } public String getPhone() { return phone;
        } public void setPhone(String phone) { this.phone = phone;
        } public String getMobile() { return mobile;
        } public void setMobile(String mobile) { this.mobile = mobile;
        } public String getLoginToken() { return loginToken;
        } public void setLoginToken(String loginToken) { this.loginToken = loginToken;
        } public String getIsStoreAdm() { return isStoreAdm;
        } public void setIsStoreAdm(String isStoreAdm) { this.isStoreAdm = isStoreAdm;
        } public String getStoreLogo() { return storeLogo;
        } public void setStoreLogo(String storeLogo) { this.storeLogo = storeLogo;
        }
    } 求帮助呀,谢谢大神了。
加载中
0
亚林瓜子
亚林瓜子
把英文异常 用你最熟悉的母语 理解一下 加油
亚林瓜子
亚林瓜子
回复 @foundMy :两个类 分开不同java文件定义 尝试一下
f
foundMy
你好,我昨天查询了很多资料,然后我发现我的问题和他们的问题感觉不一样,我将返回回来的数据定义成一个字符串,然后使用gson就可以解析,没有任何问题,但是一旦使用网络返回的数据就是解析失败,我已经去除了可能出现在字符串前后位置的空格了,结果还是不能解析,请问这个是什么原因导致的呀,
0
寒天
寒天
就你贴出来的JSON数据看,格式是才错误的,解析失败是必然的
返回顶部
顶部