返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java中如何优雅的把Map转为对象
  • 504
分享到

Java中如何优雅的把Map转为对象

javaspringspringboot 2023-08-31 07:08:40 504人浏览 薄情痞子
摘要

在项目开发中,经常碰到map转实体对象或者对象转map的场景,工作中,很多时候我们可能比较喜欢使用第三方jar包的api对他们进行转化,而且用起来也还算方便,比如像fastJSON就可以轻松实现map和对象的互转,但这里,我想通过反射的方式

项目开发中,经常碰到map转实体对象或者对象转map的场景,工作中,很多时候我们可能比较喜欢使用第三方jar包的api对他们进行转化,而且用起来也还算方便,比如像fastJSON就可以轻松实现map和对象的互转,但这里,我想通过反射的方式对他们做转化,也算是对反射的学习和研究吧;

map转java对象

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.mes.common.core.utils.StringUtils;import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.logging.Level;import java.util.logging.Logger;
    public static Object convertToObject(Class clazz, Map map) throws            IntrospectionException, InstantiationException, IllegalAccessException {        BeanInfo bi = Introspector.getBeanInfo(clazz);        Object obj = clazz.newInstance();        PropertyDescriptor[] pds = bi.getPropertyDescriptors();        String pName;        for (PropertyDescriptor pd : pds) {            pName = pd.getName();            if (map.containsKey(pName)) {                try {                    if (pd.getPropertyType().getName().equals("java.lang.Long")) {                        if(StringUtils.isNotEmpty(map.get(pName).toString())){pd.getWriteMethod().invoke(obj, Long.parseLong(map.get(pName).toString()));                        }//                        else{//pd.getWriteMethod().invoke(obj, map.get(pName));//                        }                    } else {                        pd.getWriteMethod().invoke(obj, map.get(pName));                    }                } catch (Exception ex) {                    Logger.getLogger(MapUtil.class.getName()).log(Level.SEVERE, null, ex);                }            }        }        return obj;    }

java对象转map

    public static Map objectToMap(Object obj) {        if (obj == null) {            return null;        }        Map map = new HashMap();        try {            BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();            for (PropertyDescriptor property : propertyDescriptors) {                String key = property.getName();                if (key.compareToIgnoreCase("class") == 0) {                    continue;                }                Method getter = property.getReadMethod();                Object value = getter != null ? getter.invoke(obj) : null;                String v = null;                if (value != null) {                    v = value.toString();                }                map.put(key, v);            }        } catch (Exception e) {            e.printStackTrace();        }        return map;    }        public static Map objectToMapObj(Object obj) {        if (obj == null) {            return null;        }        Map map = new HashMap();        try {            BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();            for (PropertyDescriptor property : propertyDescriptors) {                String key = property.getName();                if (key.compareToIgnoreCase("class") == 0) {                    continue;                }                Method getter = property.getReadMethod();                Object value = getter != null ? getter.invoke(obj) : null;                map.put(key, value);            }        } catch (Exception e) {            e.printStackTrace();        }        return map;    }

Map转换为Json字符串

     public static String mapToJsonString(Map map) {        JSONObject json = new JSONObject();        Iterator> entries = map.entrySet().iterator();        while (entries.hasNext()) {            Map.Entry entry = entries.next();            json.put(entry.geTKEy(), entry.getValue());        }        return json.toString();    }

Json字符串转换为Map

    public static Map jsonStringToMap(String str) {        Map map = (Map) JSON.parse(str);        return map;    }

来源地址:https://blog.csdn.net/askuld/article/details/130246829

--结束END--

本文标题: Java中如何优雅的把Map转为对象

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

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

猜你喜欢
  • Java中如何优雅的把Map转为对象
    在项目开发中,经常碰到map转实体对象或者对象转map的场景,工作中,很多时候我们可能比较喜欢使用第三方jar包的API对他们进行转化,而且用起来也还算方便,比如像fastJson就可以轻松实现map和对象的互转,但这里,我想通过反射的方式...
    99+
    2023-08-31
    java spring spring boot
  • java如何将map转换为对象
    要将Map转换为对象,可以使用反射来实现。首先,创建一个空对象,然后遍历Map的键值对,通过反射设置对象的属性值。假设有一个Pers...
    99+
    2023-08-24
    java map
  • Jquery如何把json转为对象
    这篇“Jquery如何把json转为对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Jq...
    99+
    2024-04-02
  • 如何在Python中把对象转换为JSON
    今天就跟大家聊聊有关如何在Python中把对象转换为JSON,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Py...
    99+
    2023-06-14
  • java怎么把object转为特定的对象
    在Java中,可以使用类型转换将`Object`对象转换为特定的对象类型。有两种类型转换的方式:1. 隐式类型转换(向上转型):当子...
    99+
    2023-10-12
    java
  • Golang实现优雅的将struct转换为map
    目录前言方式1:使用JSON序列和反序列化方式2:使用反射两种方式对比封装到工具包前言 在项目实践中,有时候我们需要将struct结构体转为map映射表,然后基于map做数据裁剪或操...
    99+
    2023-01-29
    Golang struct转map Golang struct map
  • es6如何把字符串转化为对象
    本文小编为大家详细介绍“es6如何把字符串转化为对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6如何把字符串转化为对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • nodejs如何把字符串转化为对象
    这篇文章主要介绍了nodejs如何把字符串转化为对象,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 nodejs...
    99+
    2024-04-02
  • 如何把实体类对象转化为json(json转实体类对象)​
    使用fastjson框架解决实体类转json的问题(实体类要序列化哦,如  实体类  implements Serializable ) 序列化(实体类转json,text为json数据,user为实体类,JSON.toJSONStri...
    99+
    2023-08-31
    json java 开发语言
  • jquery如何把json转对象
    使用jquery把json转对象的方法:1.新建html项目,引入jquery;2.使用var关键字定义json;3.使用$.parseJSON()方法将json转换为对象;具体步骤如下:首先,新建一个html项目,并在项目中引入jquer...
    99+
    2024-04-02
  • 如何在 Laravel 中优雅地使用 Java 和 JavaScript 对象?
    Laravel 是一个基于 PHP 的 Web 应用程序框架,它提供了许多方便的工具和功能来帮助开发者快速构建高质量的 Web 应用程序。在 Laravel 中,开发者可以使用 Java 和 JavaScript 对象来增强应用程序的功能和...
    99+
    2023-09-22
    javascript 对象 laravel
  • html中dom对象如何转为jquery对象
    这篇文章主要介绍了html中dom对象如何转为jquery对象,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。转换方法:对于已经是一个DOM对象,只需要用“$()”把DOM对象...
    99+
    2023-06-15
  • Java将json对象转换为map键值对案例详解
      本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据   比如json数据如下:   {responseHeader:{status:0,QTime:0},spe...
    99+
    2024-04-02
  • php如何把对象转换为字符串数组
    PHP作为一种广泛使用的服务器端脚本语言,在开发过程中经常会遇到需要将对象转换成字符串数组的情况。这在处理数据时非常常见,例如将数据库查询结果的对象转换为数组返回给前端页面。那么,PHP如何把对象转换为字符串数组呢?本文将详细介绍PHP的相...
    99+
    2023-05-23
  • jquery对象如何转为js对象
    这篇文章主要介绍“jquery对象如何转为js对象”,在日常操作中,相信很多人在jquery对象如何转为js对象问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery对象...
    99+
    2024-04-02
  • Java中Map与对象之间互相转换
    文章目录 Map转Object方式一:通过BeanMap转方式二:通过fastJson转方式三:通过gson转 Object转Map方式一:通过BeanMap转方式二:通过fastJso...
    99+
    2023-10-03
    java
  • php中json如何转为对象
    这篇文章主要介绍php中json如何转为对象,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php json转为对象的方法:首先创建一个PHP示例文件;然后用“get_object_vars”把类的类型转换成数组; 最...
    99+
    2023-06-07
  • Java中如何将对象转换为二维码?
    二维码是一种常见的矩阵条形码,它可以存储大量信息并且易于扫描。在Java中,我们可以使用第三方库来将对象转换为二维码。 本文将介绍如何使用Zxing库来将对象转换为二维码,并提供相应的代码示例。 引入Zxing库 首先,我们需要在项目...
    99+
    2023-08-29
    二维码 对象 path
  • 如何在 PHP 中把一个数组转换为一个对象
    本文介绍了在 PHP 中把数组转换为对象的方法,包括类型转换、json_decode(函数)和 json_encode(函数)。 使用类型转换 使用 json_decode 和 jso...
    99+
    2024-02-27
  • java如何实现嵌套对象转大map(扁平化)
    目录嵌套对象转大map(扁平化)java:JSON扁平化和去扁平化1、扁平化数据(网上找的一json大串)2、maven依赖3、扁平化4、去扁平化嵌套对象转大map(扁平化) 部分业...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作