news 2026/4/24 4:33:58

java实体类转成map的方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java实体类转成map的方式

场景 1:你已使用 HuTool(推荐!极简)

你代码里用了JSONUtil,说明项目已引入HuTool,这是最简单、无 bug的方案:

<!-- 你已有的HuTool依赖(无需额外加Gson) --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.16</version> </dependency>
import cn.hutool.core.bean.BeanUtil; // 1. 转 Map<String, Object>(保留字段原始类型,最常用) Map<String, Object> map = BeanUtil.beanToMap(uploadBaseEntity); // 2. 转 Map<String, String>(所有值转字符串,兼容非String字段) Map<String, String> stringMap = BeanUtil.beanToMap(uploadBaseEntity, false, true);

场景 2:仅使用 Gson(无 HuTool)

<!-- 配置gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>
import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.util.Map; Gson gson = new Gson(); // 直接转换:实体 → Map<String, Object>(无JSON字符串损耗) Map<String, Object> map = gson.fromJson(gson.toJson(uploadBaseEntity), new TypeToken<Map<String, Object>>() {}.getType());

场景 3:无任何第三方依赖(纯 JDK 反射)

import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; public class MapUtils { /** * 实体类转Map<String, Object>(纯反射,无第三方依赖) * 支持:父类字段、任意字段类型、空值 */ public static Map<String, Object> objectToMap(Object obj) { if (obj == null) { return new HashMap<>(); } Map<String, Object> map = new HashMap<>(); Class<?> clazz = obj.getClass(); // 循环获取当前类+父类的所有字段 while (clazz != null && clazz != Object.class) { Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); try { map.put(field.getName(), field.get(obj)); } catch (IllegalAccessException e) { e.printStackTrace(); } } clazz = clazz.getSuperclass(); // 获取父类 } return map; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 4:32:18

【困难】出现次数的TOPK问题-Java:进阶问题

分享一个大牛的人工智能教程。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;希望你也加入到人工智能的队伍中来&#xff01;请轻击人工智能教程大家好&#xff01;欢迎来到我的网站&#xff01; 人工智能被认为是一种拯救世界、终结世界的技术。毋庸置疑&#x…

作者头像 李华
网站建设 2026/4/24 4:26:32

TaffyDB快速入门指南:10分钟内掌握浏览器数据库开发

TaffyDB快速入门指南&#xff1a;10分钟内掌握浏览器数据库开发 【免费下载链接】taffydb TaffyDB - an open source JavaScript Database for your browser 项目地址: https://gitcode.com/gh_mirrors/ta/taffydb TaffyDB是一款轻量级的开源JavaScript数据库&#xff0…

作者头像 李华
网站建设 2026/4/24 4:26:31

Python构建实时活动推荐系统:从LDA到TF-IDF实战

1. 项目概述&#xff1a;基于Python的实时活动推荐系统 我最近完成了一个名为HapsRadar的个性化活动推荐系统&#xff0c;它能根据用户偏好实时推荐附近即将发生的Meetup和Eventbrite活动。作为一个经常在周末临时决定外出却苦于找不到合适活动的人&#xff0c;这个项目完美解决…

作者头像 李华
网站建设 2026/4/24 4:25:43

NsEmuTools:如何用5分钟完成NS模拟器的专业级配置与管理

NsEmuTools&#xff1a;如何用5分钟完成NS模拟器的专业级配置与管理 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools 还在为NS模拟器的繁琐安装、版本更新和固件管理而烦恼吗&#xff1f;N…

作者头像 李华
网站建设 2026/4/24 4:25:38

AI蜂巢安全防护体系:敏感词过滤与用户状态管理的完整方案

AI蜂巢安全防护体系&#xff1a;敏感词过滤与用户状态管理的完整方案 【免费下载链接】ai-beehive AI 蜂巢&#xff0c;基于 Java 使用 Spring Boot 3 和 JDK 17&#xff0c;支持的功能有 ChatGPT、OpenAi Image、Midjourney、NewBing、文心一言等等 项目地址: https://gitco…

作者头像 李华