java 实体转map,将map转成实体类

  java 实体转map,将map转成实体类

  

目录

java实体类转成地图1。第一种2.第二种爪哇岛实体类与地图集合互转

 

  

java实体类转成map

 

  

1.第一种

!- 配置gson依赖性groupIdcom.google.code.gson/groupId artifact id gson/artifact id 2。8 .6版/version /dependency MapString,Object map=null string JSON string=JSON util。tojsonstr(uploadbase实体);Gson Gson=new Gson();map=new HashMap();map=gson.fromJson(jsonString,map。getclass());

 

  

2.第二种

/** * 对象转化为map * * @ param obj * @ return * @ throws Exception */public static MapString,String objectto map 01(Object obj)throws Exception { if(obj==null){ return null;} MapString,String map=new HashMapString,String();field[]声明的fields=obj。getclass().getDeclaredFields();for(Field Field :声明的字段){ Field。设置可访问性(true);map.put(field.getName(),(String)字段。get(obj));}返回图;}

 

  

java实体类与map集合互转

废话不说,直接上代码!留着用吧.

 

  包com。DDM。消息。测试;导入Java。豆子。bean信息;导入Java。豆子。内省异常;导入Java。豆子。内省者;导入Java。豆子。属性描述符;导入Java。郎。反思。场;导入Java。郎。反思。invocationtargetexception导入Java。郎。反思。方法;导入Java。util。hashmap导入Java。util。地图;导入org。slf4j。记录者;导入org。SLF 4j。伐木工厂;/*** Java实体类与地图互转* @ author Administrator * */public class entityMapTransUtils { private static final Logger Logger=Logger factory。获取记录器(entityMapTransUtils。类);/** * Java实体类转地图:方法一* @ param obj * @ return */public static MapString,Object entity to map 1(Object obj){ MapString,Object map=new HashMapString,Object();班级?clazz=obj。getclass();for(字段字段: clazz。getdeclaredfields()){ Field。设置可访问(真)

  ;            String fieldName = field.getName();            Object object = null;            try {                object = field.get(obj);            } catch (IllegalArgumentException IllegalAccessException e) {                logger.info(e.getMessage());            }            map.put(fieldName, object);        }        return map;    }    /**     * Java实体类转Map:方法二     * @param obj     * @return     */    public static Map<String, Object> entityToMap2(Object obj){        Map<String, Object> map = new HashMap<String, Object>();        try {            BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();            for (PropertyDescriptor property : propertyDescriptors) {                String key = property.getName();                // 过滤class属性                if (!key.equals("class")) {                    // 得到property对应的getter方法                    Method getter = property.getReadMethod();                    Object value = getter.invoke(obj);                    map.put(key, value);                }            }        } catch (Exception e) {            logger.info(e.getMessage());        }        return map;    }        /**     * Map转实体类:要转换的Map的key跟实体类属性名相同的数据会转过去,不相同的字段会为null     * @param clazz     * @param map     * @return     */    public static <T> T mapToEntity1(Class<T> clazz,Map<String, Object> map){        T obj = null;        try {            BeanInfo beanInfo = Introspector.getBeanInfo(clazz);            obj = clazz.newInstance(); // 创建 JavaBean 对象            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();            // 给 JavaBean 对象的属性赋值            for (int i = 0; i < propertyDescriptors.length; i++) {                PropertyDescriptor descriptor = propertyDescriptors[i];                String propertyName = descriptor.getName();                if (map.containsKey(propertyName)) {                    Object value = map.get(propertyName);                    Object[] args = new Object[1];                    args[0] = value;                    try {                        descriptor.getWriteMethod().invoke(obj, args);                    } catch (InvocationTargetException e) {                        logger.info(e.getMessage());                    }                }            }        } catch (IllegalAccessException e) {            logger.info(e.getMessage());        } catch (IntrospectionException e) {            logger.info(e.getMessage());        } catch (IllegalArgumentException e) {            logger.info(e.getMessage());        } catch (InstantiationException e) {            logger.info(e.getMessage());        }        return (T)obj;    }}以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: