【小bug】使用 RestTemplate 工具从 JSON 数据反序列化为 Java 对象时报类型转换异常

起因:今天编写一个请求时需要通过RestTemplate调用外部接口,获取一些信息,但是在获取了外部接口响应内容后,使用强制转换发现报了类型转换异常。之前也遇到过,但是没记录下来,今天又查了一遍......干脆记录一下。

控制类方法报错位置

报错信息

1. 原因

在使用 RestTemplate 从 JSON 数据反序列化时,默认会将 JSON 数据转换为 LinkedHashMap。而在我的代码 result.get("obj") 的实际数据类型就是LinkedHashMap。

2. 解决

ObjectMapper是Jackson提供的一个类,用于将json数据转换为java对象。

java 复制代码
    ObjectMapper objectMapper = new ObjectMapper();
    //                                            需要转换的内容     目标类
    Resfood resfood = objectMapper.convertValue(result.get("obj"), Resfood.class);

转换成功~

相关推荐
笨蛋不要掉眼泪7 分钟前
面试篇-java基础上
java·后端·面试·职场和发展
itzixiao15 分钟前
L1-054 福到了(15 分)[java][python]
java·python·算法
Flittly19 分钟前
【SpringSecurity新手村系列】(7)基于资源权限码(Authority)的接口权限控制实战
java·spring boot·安全
ECT-OS-JiuHuaShan32 分钟前
哲学的本质,是递归因果
java·开发语言·人工智能·科技·算法·机器学习·数学建模
倾听一世,繁花盛开1 小时前
Java语言程序设计——篇十三(1)
java·开发语言·ide·eclipse
大腕先生1 小时前
通用分页超详细介绍(附带源代码解析&页面展示效果)
xml·java·linux·服务器·开发语言·前端·idea
A_aspectJ1 小时前
如何抓住Java开发岗的市场红利?从需求端反推学习路径
java·开发语言·职场和发展
XS0301061 小时前
Java 基础(九) IO流
java·开发语言·php
_Evan_Yao1 小时前
缓存金字塔上的红色闪电:Redis 如何借力 CPU 的 L1/L2/L3 与 TLB 飞驰
java·数据库·redis·后端·缓存
他是龙5511 小时前
68:Java 原生反序列化 & SpringBoot 攻防
java·开发语言·spring boot