1.lists里面的Map中的key不为list时均正常
List<Map<String, String>> lists=null;
if(cmtMaps.containsKey("cmtComments")){
lists = JSONArray.parseObject(cmtMaps.get("cmtComments"), List.class);
}
List<Map<String, String>> userLists = JSONArray.parseObject(lists.get(i).get("user"), List.class);
lists.get(i).get("user")得出的为一个List<Map<String,String>>
正常的转换不会出现问题
可是当value为list时报:com.alibaba.fastjson.JSONArray cannot be cast to java.lang.String,这是由于list被强转为string,报出的异常,不是JSONArray转为List<Map<String, String>>时报出的异常
这是由于list被强转为string,报出的异常
解决方法:
List<Map<String, Object>> lists=null;
if(cmtMaps.containsKey("cmtComments")){
lists = JSONArray.parseObject(cmtMaps.get("cmtComments"), List.class);
}
List<Map<String, String>> userLists = JSONArray.parseObject(lists.get(i).get("user").toString(), List.class);
此时userLists数据读取正常
本文详细探讨了在Java中使用JSON解析工具处理复杂数据结构时遇到的问题,特别是当JSON对象的值为List类型时,直接转换可能引发的类型转换异常。文章提供了具体的代码示例,展示了如何正确地将包含List的JSON数据转换为Java List<Map>类型,并避免了常见的转换错误。

1万+

被折叠的 条评论
为什么被折叠?



