报错: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

在做第三封登陆,取用户信息时,出现了错误

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

指示下面这行里有错误,类型转换错误 
String qqicon = sp.getString("qqicon", "0");
不可能啊, 数据里我就没有用到int 类型 怎么会出现类型转换 错误呢?
   然后我按着这个值 往回摸 一步一步查 最后发现了
  红色字体的这行 是最初得到值的地方    
Set set = data.keySet();
for (String string : set) {
    if (string.equals("iconurl")) {
        Log.e("123", "onComplete: "+data.get(string).toString() );
        qqicon = data.get(string).toString();
    } else if (string.trim().equals("name")  ) {
        Log.e("123", "onComplete: "+data.get(string).toString() );
        qqname = data.get(string).toString();
    }
}

         这里 涉及到了Trim()函数      : Trim() 它的功能就是删除字符串首部和尾部的空格。

          所以 取值时   因为json  串里 有 空格  所得到的 json  格式 不正确  ,   导致 类型异常  

解决:   if (string.trim().equals("iconurl")) {   加上 trim()  就可以了

注 :
 所以大家在请求 json  是要注意  格式  ,空格   斜杠  等 因素 
     都会导致 解析 出问题  



你可能感兴趣的:(BUG)