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

本文记录了一个关于使用Java处理JSON数据时出现类型转换错误的问题。主要原因是JSON数据中存在空格,导致了数据解析异常。文章详细介绍了问题发生的原因及解决方法,并强调了在处理JSON数据时应注意格式正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

指示下面这行里有错误,类型转换错误 
String qqicon = sp.getString("qqicon", "0");
不可能啊, 数据里我就没有用到int 类型 怎么会出现类型转换 错误呢?
   然后我按着这个值 往回摸 一步一步查 最后发现了
  红色字体的这行 是最初得到值的地方    
Set<String> 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  是要注意  格式  ,空格   斜杠  等 因素 
     都会导致 解析 出问题  



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值