您的位置:首页 > 编程语言 > Java开发

Java异常处理:java.lang.ClassCastException: JSON keys must be strings

2016-04-08 13:29 483 查看
今天在写程序的时候碰到了这个异常,初始代码如下

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,切记切记!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: