| | |
| | | package com.ots.common.utils; |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.lang.reflect.Field; |
| | | import java.util.HashMap; |
| | | import java.util.Iterator; |
| | | import java.util.Map; |
| | |
| | | } |
| | | return returnMap; |
| | | } |
| | | |
| | | /** |
| | | * 对传入的对象进行数据清洗,将属性值为null和""的去掉,其他字段名和属性值存入map集合 |
| | | * requestParameters 为要转换为键值对的对象 |
| | | * dynamicPara 转换后的键值对添加到的目标集合 |
| | | */ |
| | | public static void objectToMap(Object requestParameters,Map<String, Object> dynamicPara) throws IllegalAccessException { |
| | | // 获取f对象对应类中的所有属性域 |
| | | Field[] fields = requestParameters.getClass().getDeclaredFields(); |
| | | for (Field field : fields) { |
| | | String varName = field.getName(); |
| | | // 获取原来的访问控制权限 |
| | | boolean accessFlag = field.isAccessible(); |
| | | // 修改访问控制权限 |
| | | field.setAccessible(true); |
| | | // 获取在对象f中属性fields[i]对应的对象中的变量 |
| | | Object obj = field.get(requestParameters); |
| | | if (obj != null && StringUtils.isNotBlank(obj.toString()) || CollectionUtil.isNotEmpty((Iterable<?>) obj)) { |
| | | dynamicPara.put(varName, obj); |
| | | // 恢复访问控制权限 |
| | | field.setAccessible(accessFlag); |
| | | } |
| | | } |
| | | } |
| | | } |