【Java】Map<String,Object> 通过key取value值时,将取出的LinkedHashMap转换为实体对象

在做项目的时候,前端传入的是一个  HashMap<String,Object> stringObjectMap。

Object是不同的实体对象,通过key取对应的value时,我想让它转换为实体对象,可是打断点测试发现,取出的是一个LinkedHashMap型的对象

所以找到了以下的转换方法:

复制代码
Map<String,Object> map = new HashMap<>();

Object object = new Object();

map.put("key1",object);

//新建一个 ObjectMapper 对象
ObjectMapper objectMapper = new ObjectMapper();
User user = objectMapper.convertValue(map.get("key1"),User.class);
复制代码

 

附加:

map通过遍历key,取value的方法:用lamda表达式,如下:

stringObjectMap.forEach((key, value) -> {
if (key.equals(transport)) {
ProjectPlanPurchaseTransport projectPlanPurchaseTransport = objectMapper.convertValue(value, ProjectPlanPurchaseTransport.class);
projectPlanPurchaseTransport.setTransportId(IdGenerator.UUID());
projectPlanPurchaseTransport.setCreateUser(UserSession.getUserId());
projectPlanPurchaseTransportMapper.insert(projectPlanPurchaseTransport);
}

 

posted @   CEO雷总  阅读(4220)  评论(2编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示