iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java中 实体类与Map互转
  • 794
分享到

Java中 实体类与Map互转

javajvm开发语言 2023-10-11 22:10:31 794人浏览 独家记忆
摘要

1、map转对象; 主要思路,将map中的key-value取出来,然后和给定的对象去匹配 public static T mapToBean(Map map, Class clazz) throws Exception {Object

1、map转对象;
主要思路,将map中的key-value取出来,然后和给定的对象去匹配

public static  T mapToBean(Map map, Class clazz) throws Exception {Object obj = clazz.newInstance();if (map != null && !map.isEmpty() && map.size() > 0) {for (Map.Entry entry : map.entrySet()) {String propertyName = entry.geTKEy(); // 属性名Object value = entry.getValue();// 属性值String setMethodName = "set" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);Field field = getClassField(clazz, propertyName);//获取和map的key匹配的属性名称if (field == null){continue;}Class fieldTypeClass = field.getType();value = convertValType(value, fieldTypeClass);try {clazz.getMethod(setMethodName, field.getType()).invoke(obj, value);} catch (NoSuchMethodException e) {e.printStackTrace();}}}return (T) obj;}private static Field getClassField(Class clazz, String fieldName) {if (Object.class.getName().equals(clazz.getName())) {return null;}Field[] declaredFields = clazz.getDeclaredFields();for (Field field : declaredFields) {if (field.getName().equals(fieldName)) {return field;}}Class superClass = clazz.getSuperclass();//如果该类还有父类,将父类对象中的字段也取出if (superClass != null) {//递归获取return getClassField(superClass, fieldName);}return null;}private static Object convertValType(Object value, Class fieldTypeClass) {Object retVal = null;if (Long.class.getName().equals(fieldTypeClass.getName())|| long.class.getName().equals(fieldTypeClass.getName())) {retVal = Long.parseLong(value.toString());} else if (Integer.class.getName().equals(fieldTypeClass.getName())|| int.class.getName().equals(fieldTypeClass.getName())) {retVal = Integer.parseInt(value.toString());} else if (Float.class.getName().equals(fieldTypeClass.getName())|| float.class.getName().equals(fieldTypeClass.getName())) {retVal = Float.parseFloat(value.toString());} else if (Double.class.getName().equals(fieldTypeClass.getName())|| double.class.getName().equals(fieldTypeClass.getName())) {retVal = Double.parseDouble(value.toString());} else {retVal = value;}return retVal;}

2、对象转map,
思路,同上述的分析类似,这不过这里需要反过来,给定一个待转化的实体类,通过反射,将实体类中的字段名称和字段值获取到,然后一一设置到map的key-value中,下面看代码,

private static Map objToMap(Object obj) {Map map = new HashMap();Field[] fields = obj.getClass().getDeclaredFields();// 获取f对象对应类中的所有属性域for (int i = 0, len = fields.length; i < len; i++) {String varName = fields[i].getName();varName = varName.toLowerCase();// 将key置为小写,默认为对象的属性try {boolean accessFlag = fields[i].isAccessible();// 获取原来的访问控制权限fields[i].setAccessible(true);// 修改访问控制权限Object o = fields[i].get(obj);// 获取在对象f中属性fields[i]对应的对象中的变量if (o != null){map.put(varName, o.toString());}fields[i].setAccessible(accessFlag);// 恢复访问控制权限} catch (IllegalArgumentException ex) {ex.printStackTrace();} catch (IllegalAccessException ex) {ex.printStackTrace();}}return map;}

来源地址:https://blog.csdn.net/weixin_50391597/article/details/129063508

--结束END--

本文标题: Java中 实体类与Map互转

本文链接: https://www.lsjlt.com/news/428796.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中 实体类与Map互转
    1、map转对象; 主要思路,将map中的key-value取出来,然后和给定的对象去匹配 public static T mapToBean(Map map, Class clazz) throws Exception {Object ...
    99+
    2023-10-11
    java jvm 开发语言
  • java中map与实体类的相互转换操作
    java中map与实体类的相互转换 1. 在 pom.xml 中引入依赖包 <dependency> <groupId>com.alibaba&l...
    99+
    2024-04-02
  • Java怎么实现实体类转Map、Map转实体类
    这篇文章给大家分享的是有关Java怎么实现实体类转Map、Map转实体类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实体类转Map、Map转实体类1、创建entity(User.java)package&nbs...
    99+
    2023-06-20
  • Java如何实现实体类转Map、Map转实体类
    实体类转Map、Map转实体类 1、创建entity(User.java) package com.jeff.entity; public class User { priva...
    99+
    2024-04-02
  • Java-json相关转换,JSONObject与实体类/map互转、List/List<map>和JSONArray互转、获取JSONObject中的key value、字符串String转换等
    博客背景是Java开发。json相关的转换、取值等在日常开发中经常使用,但有时候还是会忘记or遇到些奇奇怪怪的问题。以此记录,提醒自己~不定期更新~ 文章目录 1、JSONObject相关实体类和JSONObject互转Map和JS...
    99+
    2023-08-17
    java json list
  • java实体类转成map的实现
    目录java实体类转成map1.第一种2.第二种java实体类与map集合互转java实体类转成map 1.第一种  <!-- 配置gson -->         &l...
    99+
    2024-04-02
  • Java中Json与List、Map、entity的互相转化
    目录第一步:导入依赖第二步:开始使用场景一:转换普通对象(Bean)。使用场景二:转换List集合。Json转List对象使用场景三:转换Map集合。在开发中,Json转换的场景往往...
    99+
    2024-04-02
  • Java中Map与对象之间互相转换
    文章目录 Map转Object方式一:通过BeanMap转方式二:通过fastJson转方式三:通过gson转 Object转Map方式一:通过BeanMap转方式二:通过fastJso...
    99+
    2023-10-03
    java
  • Java中BeanMap怎么实现对象与Map相互转换
    这篇文章主要介绍“Java中BeanMap怎么实现对象与Map相互转换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中BeanMap怎么实现对象与Map相互转换”文章能帮助大家解决问题。ja...
    99+
    2023-06-29
  • Map与JavaBean相互转换的工具类
    下面就来分享工具类的内容: 使用范围:JavaBean类对象的属性不能是数组、List、Set、Map public class MapBeanUtil {         pu...
    99+
    2024-04-02
  • Java中Json与List、Map、entity怎么互相转化
    本篇内容介绍了“Java中Json与List、Map、entity怎么互相转化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步:导入依赖...
    99+
    2023-07-02
  • Java BeanMap如何实现Bean与Map的相互转换
    本篇内容主要讲解“Java BeanMap如何实现Bean与Map的相互转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java BeanMap如何实现Bean与Map的相...
    99+
    2023-07-04
  • Java中Map与JSON数据之间的互相转化
    目录mapmap转JSON字符串JSON字符串转JSON对象Map转JSON对象JSON字符串转MapJSON对象转MapJSON对象转JSON字符串IDEA功能快捷键总结map 此...
    99+
    2023-05-16
    map和json互转 map与json转换 map转为json
  • JavaBeanMap实现Bean与Map的相互转换
    目录bean转Mapmap转BeanbeanMap实现以及高性能的原因net.sf.cglib.beans.BeanMap用法 bean转Map @Data public class...
    99+
    2022-11-21
    BeanMap Bean与Map的相互转换 BeanMap Bean与Map转换
  • C++类结构体与json相互转换
    目录1. 背景与需求2. 最终使用的样例代码3. 实现方法3.1 基础类型的转换3.2 类成员注册3.3 自定义类的转换3.4 外部调用接口1. 背景与需求 之前写C#的时候,解析j...
    99+
    2024-04-02
  • Java中Map与JSON数据之间怎么互相转化
    这篇文章主要介绍了Java中Map与JSON数据之间怎么互相转化的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中Map与JSON数据之间怎么互相转化文章都会有所收获,下面我们一起来看看吧。map转JSO...
    99+
    2023-07-06
  • go语言中的json与map相互转换实现
    主要是引入 "encoding/json" 包;用到的也就是其中的两个函数json.Marshal和json.Unmarshal。 1、json.Marshal ...
    99+
    2024-04-02
  • 使用Jackson实现Map与Bean互转方式
    Jackson Map与Bean互转 在使用 java 开发中,通常需要把 Map 转成 Bean,或把 Bean 转成 Map,这就用的工具类,在此推荐使用import com.f...
    99+
    2024-04-02
  • 【Java基础】java中Long与String类型相互转换
    一、Long类型 转 String类型 Long 转 String 两种方法: 1:String str = String.valueOf(Long val); 2:String str = Long.toString(Long val);...
    99+
    2023-08-20
    java
  • Map与JavaBean相互转换的工具类怎么使用
    今天小编给大家分享一下Map与JavaBean相互转换的工具类怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用范围...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作