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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。