解决java.util.LinkedHashMap cannot be cast to com.km.pojo.ItemCat问题
解决java.util.LinkedHashMap cannot be cast to com.km.pojo.ItemCat
com.alibaba.fastjson.JSONObject cannot be cast to com.km.pojo.ItemCat的问题
错误描述
使用redis的时候,设置json格式的序列化器,使用get获取时,因为数据较多,使用List集合
List<ItemCat> itemCats = (List<ItemCat>) redisUtils.get("itemCats");
但是获取的 ItemCat 对象并不能识别,jackson 会封装成 LinkedHashMap ,fastjson会封装成 JSONObject
遍历list集合时,for (ItemCat itemCat : itemCats) { }
就会出现上述错误
经过百度+谷歌4个小时,更换jackson为 fastjson,终于还是没有解决,因为网上的类似错误信息,都只是针对一个简单的对象进行解析,无非是设置 Mapper,或者格式化JSONObject,都不能有效解决这里的问题
最终序列化配置还是改为了最初的配置,如下:
无奈之举,新建一个简单 User对象,测试了List<User> ,竟然可以正常使用,成功的封装成 User对象,于是考虑可能是 对象中还包含对象的问题。
原因
两个实体有依赖关系
原因有可能是:
- 因为业务需求,查询数据库时,没有查询全部的数据,字段中含有 null值,Json无法封装为ItemCat对象
- 对象之间有依赖关系时,序列化和反序列化过程中出现问题,Json序列化器无法正常识别。
解决方案
本人能力有限,这里采用了一种不是很好的解决方法,如果哪路大神有更好的解决方法,请告知在下,感激不尽!
方法:在存入redis之前,先把数据格式化为 String类型的Json数据,然后存入redis,取出的时候,直接使用String类型接收数据,然后使用JSON格式化器格式化为想要的数据,再进行业务操作。
此处只显示了关键代码,目的是为了获取 List<ItemCat> 类型的数据
List<ItemCat> itemCats = null;String itemCatJson = (String) redisUtils.get("itemCats");// 先查询 redis,若redis没有,则查询数据库if (null == itemCatJson) {System.out.println("itemCats:reids中不存在,查询数据库数据");itemCats = itemCatService.getItemCats();// 再把查询到数据,存入一份到缓存中itemCatJson = JSON.toJSONString(itemCats);redisUtils.set("itemCats", itemCatJson);} else {System.out.println("itemCats:从reids中获取到数据...");itemCats = JSON.parseArray(itemCatJson, ItemCat.class);System.out.println(itemCats);}
如果有更好的解决方法,请告知在下,不胜感激
解决java.util.LinkedHashMap cannot be cast to com.km.pojo.ItemCat问题相关推荐
- 解决java.util.LinkedHashMap cannot be cast to 实体类......的问题
解决java.util.LinkedHashMap cannot be cast to 实体类-的问题 背景描述 在学习谷粒商城时,使用openfeign进行远程调用,由于有个接口返回的是R<L ...
- 解决java.util.LinkedHashMap cannot be cast to…
此方法用于 解决前端传回list类型后端接收时参数类型发生改变 运行的时候,在遍历的时候,就报了java.util.LinkedHashMap cannot be cast to-这个异常 具体原因不 ...
- 解决java.util.LinkedHashMap cannot be cast to 的问题
/**r.getData的数据结构是一个Json对象,用List<User>强转之后foreach遍历,出现java.util.LinkedHashMap cannot be cast t ...
- 解决java.util.LinkedHashMap cannot be cast to xxx(domain实体类)的问题
一.问题描述 1.最近在做分布式项目,需要用到其他子模块接口方法返回数据,同时这个项目也是前后端分离项目,后台接口返回的格式都是封装好了的json格式,我想拿到其中的data数据,如下图所示: 2.我 ...
- 多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....
问题描述 今天在使用RestTemplate调用服务的时候,因为服务提供者返回的是一个List集合,所以在使用消费者调用的时候,restTemplate.getForObject()期待返回的类型直接 ...
- 关于java.util.LinkedHashMap cannot be cast to 实体类......问题的出现以及解决办法
在使用RestTemplate调用服务的时候,因为服务提供者返回的是一个List集合,所以在使用消费者调用的时候,restTemplate.getForObject()期待返回的类型直接写成了List ...
- 在JWT令牌转获取私有化声明时出错,java.util.LinkedHashMap cannot be cast to cn.mar.crm.sys.entity.SysUser
在JWT令牌转获取私有化声明时,执行以下代码时报错 String jwt = req.getHeader(JwtUtils.JWT_HEADER_KEY);Claims claims = this.v ...
- java.util.LinkedHashMap cannot be cast to Entity
前后端数据传输转换问题-java.util.LinkedHashMap cannot be cast to Entity 问题场景:项目前端使用json传输方式,后台接收后对象变成了LinkedHas ...
- java.util.LinkedHashMap cannot be cast to 问题
今天在做项目时候出现 java.util.LinkedHashMap cannot be cast to xxx 异常.在此记录. 问题背景: 通过RestTemplate调用另一个服务接口,获取Li ...
最新文章
- linux 从行查看文件,linux 查看文件内容
- RabbitMQ 相关概念
- 新浪微博和SAP CRM Interaction Center(呼叫中心)的集成
- Java消息服务~消息属性
- node mysql await_javascript – node.js async / await与MySQL一起使...
- Git 提交失败提示无写入权限与 Linux 下创建文件的默认权限
- 记那些年在asp.net mvc上挖过的坑
- hdu 5964:平行四边形 【计算几何】
- 科沃斯扫地机器人阿尔法_科沃斯(Ecovacs)阿尔法地宝简单开箱
- XcodeGhost事件或成年内最严重信息安全事件
- 联想重装系统去掉保护_带有联想保护系统的电脑安装系统具体步骤如下
- 博客空间自动互踩刷人气
- Cypress下载安装+问题记录
- 《挚爱》简谱,网上没找到,自己写了个,非专业,敬请指教!
- 指南:情人节表白h5源码
- 可能是最全的|适合决策AI研究的自动驾驶模拟器评测(下篇)
- 普通计算机怎么算根号_「根号计算器」12、计算机如何实现开根号? - seo实验室...
- 使用U-Net 进行图像分割
- 敏捷开发中如何写好用户故事?
- SPSS如何做离散和连续变量的统计描述
热门文章
- 怎样用计算机命令修复软件,chkdsk磁盘修复命令工具怎么用,怎样运行chkdsk工具修复?...
- 乐视腾讯深度合作 超级电视26日易迅网首发
- ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件
- linux服务生产环境启动报错
- 联想linux改windows,G40-70、G50-70联想小新笔记本SR1000随机Linux改Windows 7系统操作指导...
- 完整学习笔记之Android基础(详版)
- 从linux上下载命令行,分享|如何在Linux命令行中下载GOG游戏
- ubuntu系统matlab2021a安装及设置matlab快捷方式
- 安卓开发使用Bmob遇到的一些问题及解决办法
- Java算法---发工资