精华内容
下载资源
问答
  • JavaObject转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类完成ObjMap之间的相互转换.

    • ObjectMap类型
    //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;
    }
    
    • MapObject类型
    //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类型。

    展开全文
  • Object转MapMap转Object(对象转mapmap转对象)

    万次阅读 多人点赞 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

    千次阅读 2018-07-25 11:38:28
    仅供参考 ... /*简单Object转map*/  public static Map&lt;String,String&gt; toMap(Object o){  Map&lt;String,String&gt; map=new HashMap&lt;String, String&gt;();  ...

    仅供参考

    @Log4j
    public class ObjectToMap {
        /*简单Object转成map*/
        public static Map<String,String> toMap(Object o){
            Map<String,String> map=new HashMap<String, String>();
            Field[] fields=o.getClass().getDeclaredFields();
            try {
                for (int i=0;i<fields.length;i++) {
                    String name=fields[i].getName();
                    Field field=o.getClass().getDeclaredField(name);
                    field.setAccessible(true);
                    if (null!=field){
                        map.put(name,field.get(o).toString());
                    }
                }
            }catch(Exception e){
                log.error(e.getMessage(),e);
            }
            return map;
        }
        /*复杂Object转成map*/
        public static Map<String, Object> toObjectMap(Object object) {
            Map<String, Object> map = new HashMap<String, Object>();
            toMap(object.getClass(), object, map);
            return map;
        }
        private static void toMap(Class<?> clazz, Object object, Map<String, Object> map) {
            Method[] methods = clazz.getDeclaredMethods();
            if (methods != null && methods.length > 0) {
                for (Method method : methods) {
                    String mname = method.getName();
                    if (mname.startsWith("get") && method.getParameterTypes().length == 0) {
                        try {
                            String fieldName = mname.substring(3, 4).toLowerCase() + mname.substring(4);
                            if ("serialVersionUID".equals(fieldName)) {
                                continue;
                            } else if ("class".equals(fieldName)) {
                                continue;
                            }
                            Object fieldValue = method.invoke(object, null);
                            if (fieldValue != null) {
                                map.put(fieldName, fieldValue);
                            }
                        } catch (IllegalAccessException e) {
                            log.info(e.getMessage(),e);

                        } catch (InvocationTargetException e) {
                            log.info(e.getMessage(),e);
                        } catch (SecurityException e) {
                            log.error(e.getMessage(),e);
                        }
                    }
                }
            }
            if (clazz.getSuperclass() != null) {
                toMap(clazz.getSuperclass(), object, map);
            }
        }

        public static void main(String[] args)throws Exception {
            Tests tests=new Tests(10,"zhangsan");
            ObjectToMap om= new ObjectToMap();
            Map<String,String> map= om.toMap(tests);
            System.out.println(map.toString());
            Map<String,Object> omap= om.toObjectMap(tests);
            System.out.println(omap.toString());
        }

    }
    class Tests{
        private int age;
        private String name;

        public Tests(int age,String name) {
            this.age=age;
            this.name=name;
        }
        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    展开全文
  • java Map转Object Object转Map

    千次阅读 2017-01-05 16:10:01
    2、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; ...

    1、定义一个实体类:

    package reflect;
    
    public class User {
        
        private String name;
        
        private int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    2、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;
    import java.util.Map;
    
    public class testMapToObject {
        
        public static void main(String[] args){
            
            //假设有一个Map存放了一个对象的姓名和年龄
            Map<String,Object> map = new HashMap<String,Object>();
            map.put("name", "Kobi");
            map.put("age", 39);
            
            User user = transferMapToUser(map,User.class);
            
            System.out.println(user.getName());
            System.out.println(user.getAge());
        }
        
        public static <T> T transferMapToUser(Map<String,Object> map,Class<T> classT){
            try {
                return transfer(map,classT.newInstance());
            } catch (InstantiationException ex) {
                System.out.println("what the fuck?");
            } catch (IllegalAccessException ex) {
                System.out.println("what the fuck?");
            }
            return null;
        }
        
        public static <T> T transfer(Map<String,Object> map,Object obj){
            
            try {
                BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
    
                for (PropertyDescriptor property : propertyDescriptors) {
                    String key = property.getName();
                    if (map.containsKey(key)) {
                        Object value = map.get(key);
                        // 得到property对应的setter方法
                        Method setter = property.getWriteMethod();
                        try {
                            setter.invoke(obj, value);
                        } catch (IllegalArgumentException ex) {
                            System.out.println("what the fuck?");
                        }
                    }
                }
            } catch (Exception ex) {
                System.out.println("what the fuck?");
            }
    
            return (T) obj;
        }
        
    }
    
    运行结果:
    run:
    Kobi
    39
    成功构建 (总时间: 0 秒)
    

    3、Object转Map:

    package reflect;
    
    import java.beans.BeanInfo;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.Method;
    import java.util.Map;
    import java.util.TreeMap;
    
    public class testObjectToMap {
        
        public static void main(String[] args){
            User user = new User();
            user.setName("Kobi");
            user.setAge(39);
            
            Map<String, Object>  map = transBean2Map(user);
            System.out.println(map);
            
        }
     
        public static  Map<String, Object> transBean2Map(Object obj) {
    
            if (obj == null) {
                return null;
            }
            TreeMap<String, Object> map = new TreeMap<>();
            try {
                BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
                for (PropertyDescriptor property : propertyDescriptors) {
                    String key = property.getName();
                    // 过滤class属性
                    if (key.equals("class")) {
                        continue;
                    }
                    
                    // 得到property对应的getter方法
                    Method getter = property.getReadMethod();
                    Object value = getter.invoke(obj);
                    
                    map.put(key, value);
                }
            } catch (Exception e) {
                System.out.println("transBean2Map Error " + e);
            }
            return map;
        }
    }
    
    运行结果:

    run:
    {age=39, name=Kobi}
    成功构建 (总时间: 0 秒)
    





    展开全文
  • java 对象Object转Map / Json

    千次阅读 2019-10-18 10:39:51
    在项目中我们传值时,常常需要把对象集合成Json集合进行传递。可用如下代码来进行转换: @Test public void test() throws Exception { List<JSONObject> dataJson = getDataJson(); System.out....
  • Java ObjectMap对象相互转换

    千次阅读 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 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实现ObjectMap之间的转换3种方式

    千次阅读 2018-09-06 20:47:25
    1.利用commons.BeanUtils实现Obj和Map之间转换,...public static Object mapToObject(Map&lt;String, Object&gt; map, Class&lt;?&gt; beanClass) throws Exception { if (map == null) return...
  • Map转换ObjectObject转换Map、List<Object>转换List<Map>、List<Map>转换List<Object>、对象拷贝
  • java Obect 转map map 转Object 工具类

    千次阅读 2016-01-22 10:15:27
    import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.math.BigDecimal; import java.math.BigInteger; import java.util.Date; import java.util.HashMap;...import java.util.Map; imp
  • [java反射]对象Object转换为Map

    千次阅读 2018-04-14 12:45:52
    下面运用java反射的知识,写一个工具方法,用来对象Object转换为Map, 转换规则为:Map中的key是原对象的属性名,value是原来对象的属性值 import java.lang.reflect.Field; import java.util.HashMap; import ...
  • 对象转map(object转map)

    千次阅读 2019-04-25 11:52:56
    import java.lang.reflect.Field; import java.util.LinkedHashMap; import java.util.Map; public class ObjectToMap { //对象转Map public static Map<String, Object> getObjectToMap(Object obj) t...
  • Java将Object转换为数组的情况

    千次阅读 2020-07-29 21:48:36
    今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、Map等对象是否为空的操作。 下面展示了一部分代码: public static boolean isEmpty(Object object) { if(object == null){ ...
  • java MapObject

    千次阅读 2017-07-07 15:43:50
    /*** * map转换成对象 */ public static Object mapToObject(Map, Object> map, Class<?> beanClass) throws Exception { if (map == null) return null; Ob
  • java 使用反射转换对象 Object to Map

    万次阅读 2014-05-08 15:04:54
    Object to Map 转换的三种方法 就是把对象以及其对应的属性名 和属性值, 映射到一个Map中 import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import ...
  • 感谢欢欢大神,提供的完美程序 public static void main(String... *List> 转Map */ List> list1 = new ArrayList>(); Map map1 = new HashMap(); map1.put("1001", "list1_map1_value1"); map1.put("1
  • 以下是Object转List的需求场景 前端通过http请求,body以json形式,内容含有字符串、数组。 后端使用Map<string,Object>的方式接收,些时如何部分的Object转换成List 此时,如何数组参数Object转换成List...
  • Java中将Map转String,String转Map

    千次阅读 2020-07-04 22:27:22
    String转Map: JSONObject jsonobject = JSONObject.fromObject(str); rMap = (Map<String, Object>) jsonobject; 但很多时候并不能直接将Map对象的toString() 而是应该转换为JsonObject后再调用toString()后...
  • Java工具类 json,object,map之间的转换

    千次阅读 2018-12-01 12:15:29
    此工具类主要是json,object,map之间的转换 目录 一 依赖 1.1 非web工程 1.2 spring-boot-web工程  二 代码  三 测试 3.1 object转json 3.2 json转object 3.3 json转map 一 依赖 下面情况二选一即可 ...
  • Object转Map的几个坑

    千次阅读 2019-03-07 16:40:15
    这里总结了三种Object转Map的方法 1、利用反射getDeclaredFields和getFields /** * 对传入的对象进行数据清洗,属性值为null和""的去掉,其他字段名和属性值存入map集合 */ public Map<String,Object> ...
  • java解析json转Map

    千次阅读 2017-08-23 16:55:19
    前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapimport java.util.ArrayList; import java.util.HashMap; import java.util....
  • JavaObject转换为List类型

    万次阅读 2020-05-19 15:57:33
    解析数据的时候map.get(key)所获取到的类型为Object。此时,需要转换成我们所需要的数据类型进行使用。 类型转换 在类型转换工程中,常见的转换方式为强制转换。如(String)map.get(key),(int)map.get(key)等。在是...
  • java实现mapObject

    千次阅读 2016-05-12 11:19:56
    /** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map map, Class beanClass) throws Exception { if (map == null) return
  • 转换规则为:Map中的key是新对象的属性名,Map中的value是新对象中的属性值 import org.apache.commons.lang3.ArrayUtils; import java.lang.reflect.Field;... * 将map转换为object,转换全部属性(按照...
  • java Object对象HashMap

    千次阅读 2019-10-21 15:03:19
    复杂的Object转Map, 网上也找了些转换map的代码。简单的Object转换还行,复杂点的就不行了,比如Object里有数组对象时就处理不了了,最后还是借助阿里的fastjson工具完成转换,如下 /** * Object HashMap<...
  • 这是我对java反射机制的一点认识,利用反射可以将map集合与object对象进行转化,我想如果可以的话可以进一步改善当做一个框架来编写
  • java 对象Map

    千次阅读 2019-07-10 21:34:07
    public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException { Map<String, Object> map = new HashMap<String, Object>(); Class<?> cla...
  • JAVA 解析 XML Map

    千次阅读 2019-05-29 17:42:07
    import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NodeList; /** ...
  • Java对象转Map

    万次阅读 2019-06-04 09:46:18
    使用org.apache.commons.beanutils包下的BeanUtils.describe()方法可以将Java对象按属性转为Map。 import org.apache.commons.beanutils.BeanUtils; class CommonUtils{ public static Map<String, Object>...
  • 废话不说,直接上源码 public static Map<String, String> convertToMap(Object obj) { try { if (obj instanceof Map) { return (Map)obj; } Map<String, String> retur...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 564,083
精华内容 225,633
关键字:

java将object转map

java 订阅