【小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);

转换成功~

相关推荐
阿维的博客日记32 分钟前
怎么用ThreadLocal解决用户的登录上下文
java·juc
Dicky-_-zhang1 小时前
容器编排实战:Docker与Kubernetes对比选型与落地实践
java·jvm
benpaodeDD1 小时前
视频10,11,12,13——java程序的加载与执行,安装jdk
java·开发语言
数字化顾问1 小时前
(122页PPT)数字化架构的演进和治理(附下载方式)
java·运维·架构
XiYang-DING2 小时前
【Java SE】JVM
java·开发语言·jvm
小陶来咯2 小时前
小智接入懒人说书MCP
java·开发语言
Dicky-_-zhang2 小时前
日志管理实战:ELK与Loki对比选型与落地实践
java·jvm
nJI74egg12 小时前
JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
java·面试·java-ee
刮风那天2 小时前
Android AMS创建进程不用Binder而用Socket?
android·java·binder
程序员老邢2 小时前
【技术底稿 37】Spring Boot 3.x 自动装配 “死锁” 排查:3 个注解实现条件化装配与 Mock 兜底
java·spring boot·后端·自动装配·rag·技术底稿