-
2016-05-27 10:58:04
import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * */ public class MapUtils { private static Logger logger = LoggerFactory.getLogger(MapUtils.class); /** * @param obj * @return * @throws Exception */ public static Map<String, Object> introspect(Object obj) { Map<String, Object> result = new HashMap<String, Object>(); try { BeanInfo info = Introspector.getBeanInfo(obj.getClass()); for (PropertyDescriptor pd : info.getPropertyDescriptors()) { Method reader = pd.getReadMethod(); Object Object=reader.invoke(obj); String name=pd.getName(); if (reader != null) if(Object!=null && !name.equals("class")){ result.put(name, Object); } } } catch (Exception e) { logger.warn("Object转Map出错: obj={}", obj); logger.warn("Object转Map出错", e); } return result; } }
更多相关内容 -
java实现Object和Map之间的转换3种方式
2020-08-30 03:24:23本篇文章主要介绍了java实现Object和Map之间的转换3种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
ObjectToMapUtil.java(Object对象转Map)
2021-08-16 16:40:50Java代码Object对象转Map -
java Map转Object与Object转Map实现代码
2020-08-31 11:16:31主要介绍了 java Map转Object与Object转Map实现代码的相关资料,需要的朋友可以参考下 -
Java中Object转Map类型,Map转Object类型
2020-07-31 09:40:11在使用Java编程过程中,经常会遇到获取的数据为Object类型,但只是以这种方式传输,实质还是Map类型,此时就涉及到两种类型的相互转换。 强制转换 在类型转换工程中,常见的转换方式为强制转换。如(String)map.get...前言
在使用Java编程过程中,经常会遇到获取的数据为
Object
类型,但只是以这种方式传输,实质还是Map
类型,此时就涉及到两种类型的相互转换。强制转换
在类型转换工程中,常见的转换方式为强制转换。如
(String)map.get(key)
,(int)map.get(key)
等。但是如果接收的类型为Map
,此时强转(Map<String, Object>) obj
则会报出警告。治标不治本
很多人会使用@SuppressWarnings(“unchecked”)来解决编辑器中的警告,好看是好看了。但是这用来告诉编译器忽略警告,而警告却实实在在的存在。项目的风险还是存在。
方法一
可以使用
java.lang.reflect.Field
类完成Obj
和Map
之间的相互转换.Object
转Map
类型
//Object转Map public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException { Map<String, Object> map = new HashMap<String, Object>(); Class<?> cla = obj.getClass(); Field[] fields = cla.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); String keyName = field.getName(); Object value = field.get(obj); if (value == null) value = ""; map.put(keyName, value); } return map; }
Map
转Object
类型
//Map转Object public static Object getMapToObject(Map<Object, Object> map, Class<?> cla) throws Exception { if (map == null) return null; Object obj = cla.newInstance(); Class<?> cla = obj.getClass(); Field[] fields = cla.getDeclaredFields(); for (Field field : fields) { int mod = field.getModifiers(); if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { continue; } field.setAccessible(true); if (map.containsKey(field.getName())) { field.set(obj, map.get(field.getName())); } } return obj; }
通过
Field
类进行数据类型的转换。方法二
通过
BeanUtils
工具类进行转换//1、map转换为object public static Object mapToObject(Map<String, Object> map, Class<?> cla) throws Exception { if (map == null) return null; Object obj = clas.newInstance(); org.apache.commons.beanutils.BeanUtils.populate(obj, map); return obj; } //2、object转换为map public static Map<?, ?> objectToMap(Object obj) { if (obj == null) return null; return new org.apache.commons.beanutils.BeanMap(obj); }
总结
最后,通过调用这两个方法就可以实现Object转Map类型,Map转Object类型。
-
MapToObjectUtil.java(Map转Object对象)
2021-08-16 16:39:37Java代码Map转Object对象 -
Map 转为Object Object 转为 Map java jdk1.4以上
2013-08-30 12:21:16Map 转为Object Object 转为 Map java jdk1.4以上 应用java 反射机制实现 有工程,直接运行 -
java 对象Object转Map / Json
2019-10-18 10:39:51在项目中我们传值时,常常需要把对象集合转成Json集合进行传递。可用如下代码来进行转换: @Test public void test() throws Exception { List<JSONObject> dataJson = getDataJson(); System.out....在项目中我们传值时,常常需要把对象集合转成Json集合进行传递。可用如下代码来进行转换:
@Test public void test() throws Exception { List<JSONObject> dataJson = getDataJson(); System.out.println(dataJson); } public List<JSONObject> getDataJson() throws Exception { List<JSONObject> li=new ArrayList<JSONObject>(); List<DB2> db2 = getDataFromDB2("3"); // 这个是自己的数据源,就是一个对象集合 for(DB2 d:db2) { Map<String, Object> map = objectToMap(d); li.add(new JSONObject(map)); } return li; } public Map<String, Object> objectToMap(Object obj) throws IllegalAccessException { Map<String, Object> map = new HashMap<String,Object>(); Class<?> clazz = obj.getClass(); for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); String fieldName = field.getName(); Object value = field.get(obj); map.put(fieldName, value); } return map; }
结果如下:
-
Object转Map和Map转Object(对象转map,map转对象)
2019-05-09 10:06:20第一种方法:fastJosn import com.alibaba.fastjson.JSON; import ... Object转Map FindArchiveDto findArchiveDto = new FindArchiveDto(); findArchiveDto.setContractStatus("降龙"); ...FindArchiveDto findArchiveDto = new FindArchiveDto(); findArchiveDto.setContractStatus("降龙"); findArchiveDto.setCustName("明华"); findArchiveDto.setDepartmentName("赵无极");
fastjson转换方法
//Object转Map Map map = JSONObject.parseObject(JSONObject.toJSONString(findArchiveDto), Map.class); Map<String,Object> map = JSONObject.parseObject(JSON.toJSONString(findArchiveDto)); //Map转Object FindArchiveDto findArchiveDto1 = JSON.parseObject(JSON.toJSONString(map), FindArchiveDto.class); FindArchiveDto findArchiveDto2 = JSONObject.toJavaObject(JSON.toJSONString(map), FindArchiveDto.class);
jackson的转换
ObjectMapper mapper = new ObjectMapper(); //对象转map Map m = mapper.readValue(mapper.writeValueAsString(findArchiveDto), Map.class); //map转对象 FindArchiveDto dto = mapper.readValue(mapper.writeValueAsString(m), FindArchiveDto.class);
还可以用org.apache.commons.beanutils.BeanMap进行转换
Map<String, Object> map = new org.apache.commons.beanutils.BeanMap(findArchiveDto);
还可以用org.apache.commons.beanutils.BeanUtils将map转为对象
BeanUtils.populate(findArchiveDto, map);
//Object转Map public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException { Map<String, Object> map = new LinkedHashMap<String, Object>(); Class<?> clazz = obj.getClass(); System.out.println(clazz); for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); String fieldName = field.getName(); Object value = field.get(obj); if (value == null){ value = ""; } map.put(fieldName, value); } return map; }
//Map转Object public static Object mapToObject(Map<Object, Object> map, Class<?> beanClass) throws Exception { if (map == null) return null; Object obj = beanClass.newInstance(); Field[] fields = obj.getClass().getDeclaredFields(); for (Field field : fields) { int mod = field.getModifiers(); if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { continue; } field.setAccessible(true); if (map.containsKey(field.getName())) { field.set(obj, map.get(field.getName())); } } return obj; }
-
java object互转Map的三种方法
2017-06-14 16:56:09原文:http://www.open-open.com/code/view/1423280939826 /** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map map, Class beanClass) throws Except -
java中实现map与对象相互转换的几种实现
2021-02-12 10:02:12最近,研究map与java对象之间的相互转换,总结了5种方法:第一种:使用org.apache.commons.beanutils转换用到的主要jar包:commons-beanutils-1.9.3.jar//map转java对象public static Object mapToObject(Map map, ... -
java Object类型转Map
2018-07-25 11:38:28仅供参考 ... /*简单Object转成map*/ public static Map<String,String> toMap(Object o){ Map<String,String> map=new HashMap<String, String>(); ... -
Object 转Map,Map转Object方式总结
2022-03-16 11:35:16} 通过反射实现Map转Bean //Map转Object public static Object mapToObject(Map map, Class beanClass) throws Exception { if (map == null) return null; Object obj = beanClass.newInstance(); Field[] fields ... -
Java Object与Map对象相互转换
2017-10-14 11:24:41/** * 使用org.apache.commons.beanutils进行转换 ...class A { public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { if (map == null) -
Java 对象转化为Map
2022-04-03 18:47:30方式一: 利用FastJson 把对象转化为Map /** * * @MethodName: getUserInfoDataByUserId * @Description: 根据useId查询用户信息,封装成map key:属性名,value:属性值 * home.php?mod=space&uid=952169 ... -
java常用的对象转map的几种方式
2021-01-17 15:04:44创建对象User ...import java.util.Date; public class User { /** * * ID */ private Integer id; /** * * 用户名 */ private String userName; /** * * 岗位ID */ private Long jobId; -
Object转成map对象
2021-04-07 16:54:261、Object转换成map的方法 import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; /** * 将Object对象里面的属性和值转化成Map对象 * * @param obj * @return * @throws ... -
Java中对象(Object)转换成Map
2021-02-12 20:50:25以前没用过此类方法1....Map map1= new HashMap();map1 = BeanUtils.describe(要转换的对象);2.此处转自其它博客,可以参考里面DynaProperty的用法package org.apache.commons.beanutils;import ... -
java Map转Object Object转Map
2017-01-05 16:10:012、Map转Object转换如下: package reflect; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.HashMap; ... -
java-将Map ,Object>转换为Map ,String>
2021-03-06 01:46:47//Object is containing StringMap newMap =new HashMap(map);11个解决方案37 votes现在我们有了Java 8 / streams,我们可以在列表中添加一个可能的答案:假设每个值实际上都是String对象,则强制转换为... -
java 实体对象与Map之间的转换工具类(自己还没看)
2021-02-25 19:51:52importjava.lang.reflect.Field;importjava.util.HashMap;...public classEntityUtils {/*** 实体类转Map*@paramobject*@return*/public static MapentityToMap(Object object) {Map map = newHashMap(... -
Java jsonObject 转 map 对象
2020-10-12 14:41:361.jsonObject 转 map 相关jar包: import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import com.alibaba.fastjson.JSON; import ... -
java 实体转map
2022-03-21 00:04:46实体,map -
【Java对象转换】002- Java 对象与 Map 互转
2022-03-27 13:20:20文章目录【Java对象转换】002- Java 对象与 Map 互转一、Java 对象与 Map 概述1、Java 对象2、Map二、Java 对象与 Map 互转1、使用 commons.beanutils 转换第一步:在 pom.xml 下引入依赖第二步:写个工具类第三步:... -
Java中 如何把Object类型强转成Map, String>类型
2021-03-13 20:57:58首先你需要保证要转换的Object的实际类型是Map假设Object变量名为obj,强制转换(Map)obj转换前...追答方法上面加注解@SuppressWarnings("unchecked")能这么转的前提是 你的object对象真的是一个 Map 要不也是转不过... -
string 转 java对象、转map的方式
2021-03-06 01:15:451、使用fastJson 将String转 map:String out;... //先转换成ObjectMap map = (Map)succesResponse; //Object强转换为Map2、String 转 java 对象fastjson 应用 string字符串转换成java对象或者对象数... -
java Map与Object互转
2017-07-07 15:43:50/*** * map转换成对象 */ public static Object mapToObject(Map, Object> map, Class<?> beanClass) throws Exception { if (map == null) return null; Ob -
map和object相互转换的几种方法和对比
2019-11-06 17:03:00工作中经常遇到这样的场景,需要在object和map直接相互转换,这里总结一下。 我先定义一个实体类,后面介绍的几种转换方法都以这个实体类为例进行说明。 public class PersonBean { private String name; //姓名 ...
收藏数
677,052
精华内容
270,820