龙空技术网

Java 对象转化为Map

Zzzzj 463

前言:

此时大家对“java数组转map”大体比较注重,同学们都需要学习一些“java数组转map”的相关资讯。那么小编同时在网络上收集了一些关于“java数组转map””的相关文章,希望各位老铁们能喜欢,看官们一起来学习一下吧!

方式一: 利用FastJson 把对象转化为Map

1.项目引入依赖

<!--  --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.56</version></dependency>

2.使用FastJson的ParseObject 方法

//导包import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.TypeReference;/**** @MethodName: getUserInfoDataByUserId* @Description: 根据useId查询用户信息,封装成map key:属性名,value:属性值* home.php?mod=space&uid=952169 userId 用户userId* @return*/public Map<String, String> getUserInfoDataByUserId(String userId) {Map<String, String> userMap = new HashMap<String, String>();BSysUser bSysUser = new BSysUser();if (StringUtils.isNoneBlank(userId)) {bSysUser = bSysUserService.selectByKey(userId);if (null != bSysUser) {//userMap = new BeanMap(bSysUser);userMap = JSON.parseObject(JSON.toJSONString(bSysUser), new TypeReference<Map<String, String>>() {});}}return userMap;}

3.提供接口,供其他模块调用

/**** @MethodName: getAppDataBySceneId* @Description: 根据userid获取用户信息* @param userId 用户userId* @param type 用户对象的属性名,例如 userName,trueName,mobile,userSex,photo* @return*/@ResponseBody@RequestMapping("/api/user/getUserSingleInfoByUserIdAndAttribute")public ResponseData getUserSingleInfoByUserIdAndAttribute(String userId, String type) {ResponseData data = operateFailed("获取数据失败");String message = "用户信息获取成功";if (StringUtils.isBlank(userId)) {data = operateFailed("userId 为空!");return data;}if (StringUtils.isBlank(type)) {data = operateFailed("type 属性名为空,例如userName,trueName,photo!");return data;}Map<String, String> userMap = getUserInfoDataByUserId(userId);String value = "";if (null != userMap && StringUtils.isNoneBlank(type)) {switch (type) {case "userName":value = userMap.get("userName");break;case "trueName":value = userMap.get("trueName");break;case "photo":value = userMap.get("photo");break;case "mobile":value = userMap.get("mobile");break;case "isDel":value = userMap.get("isDel");break;case "userSex":value = userMap.get("userSex");case "createTime":value = userMap.get("createTime");break;}}if (StringUtils.isNoneBlank(value)) {data = operateSucess(message, value);}return data;}

方式二: 利用反射进行转换

public class BeanMapUtilByReflect {/*** 对象转Map* @param object* @return* @throws IllegalAccessException*/public static Map beanToMap(Object object) throws IllegalAccessException {Map<String, Object> map = new HashMap<String, Object>();Field[] fields = object.getClass().getDeclaredFields();for (Field field : fields) {field.setAccessible(true);map.put(field.getName(), field.get(object));}return map;}/*** map转对象* @param map* @param beanClass* @param <T>* @return* @throws Exception*/public static <T> T mapToBean(Map map, Class<T> beanClass) throws Exception {T object = beanClass.newInstance();Field[] fields = object.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(object, map.get(field.getName()));}}return object;}}

方式三: 利用工具类进行转换

/**** @MethodName: getUserInfoDataByUserId* @Description: 根据useId查询用户信息,封装成map key:属性名,value:属性值* @param userId 用户userId* @return*/public Map<String, String> getUserInfoDataByUserId(String userId) {Map<String, String> userMap = new HashMap<String, String>();BSysUser bSysUser = new BSysUser();if (StringUtils.isNoneBlank(userId)) {bSysUser = bSysUserService.selectByKey(userId);if (null != bSysUser) {//import org.apache.commons.beanutils.BeanMap;//userMap = new BeanMap(bSysUser);//import org.apache.commons.beanutils.BeanUtils;//userMap = BeanUtils.describe(user);//效果等同userMap = JSON.parseObject(JSON.toJSONString(bSysUser), new TypeReference<Map<String, String>>() {});}}return userMap;}//import org.apache.commons.beanutils.BeanMap;//userMap = new BeanMap(bSysUser);<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency>

原文链接:

标签: #java数组转map