Java异常处理:java.lang.ClassCastException: JSON keys must be strings
2016-04-08 13:29
483 查看
今天在写程序的时候碰到了这个异常,初始代码如下
第一个想法就是“难道map和list是特殊字符,在JSONObject中会自动进行反射?”,然后就将key值进行了修改,如下:
测试之后还是出现同样的异常信息。无奈,去网上查了下相关资料,才发现JSONObject中放置Map的时候,会自动将Map看成是JSONObject来处理,而我的map中的key值是Integer类型的,在转化的时候就会报这个异常,将Map中的key值换成String类型即可。
同理,以后写代码时,如果碰到JSON中放置Map的情况时,一定要注意Map中的key值的类型,只能是String,切记切记!
JSONObject obj = new JSONObject(); obj.put("map", map); obj.put("list", list);
第一个想法就是“难道map和list是特殊字符,在JSONObject中会自动进行反射?”,然后就将key值进行了修改,如下:
JSONObject obj = new JSONObject(); obj.put("maps", map); obj.put("lists", list);
测试之后还是出现同样的异常信息。无奈,去网上查了下相关资料,才发现JSONObject中放置Map的时候,会自动将Map看成是JSONObject来处理,而我的map中的key值是Integer类型的,在转化的时候就会报这个异常,将Map中的key值换成String类型即可。
同理,以后写代码时,如果碰到JSON中放置Map的情况时,一定要注意Map中的key值的类型,只能是String,切记切记!
相关文章推荐
- scrollview 滑动到指定位置,在java代码中设置控件自适应
- Java基础学习第六天——二维数组与面向对象入门
- Spring事件驱动
- Java IO:FileInputStream和FileOutputStream使用详解及源码分析
- java-eclipse-创建maven项目
- Springmvc精简教程(1)
- java语法小结5
- Java volatile,transient关键字使用小记
- 项目ITP(五) spring4.0 整合 Quartz 实现任务调度
- [疯狂Java]SQL-select:查询列改名、查询常量、去重、升/降序排列
- java导出Excel通用方法
- 唯品会——java开发实习生机试
- parcelable接口
- Spring MVC工作流程图
- java中stringBuilder的用法
- java多线程
- Java NIO框架Netty教程(二)
- 配置mac上Java环境变量
- java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
- Spring web过滤器-各种filter讲解