将map装换为javabean对象和将map转化为list

xiaoxiao2021-02-28  26

将map装换为javabean对象***将List<Map<String,Object>>转换为List<T>

controller里面的调用

@Login @PostMapping(value = "/save") @ApiOperation("新增用户课程") public R save(@RequestBody Map<String, Object> map, @LoginUser UserEntity userEntity) throws InstantiationException, IllegalAccessException { Map<String, Object> map1 = (Map<String, Object>) map.get("data"); List<UserCouserPeriods> list = BeanMapUtils.mapsToObjects((List<Map<String, Object>>) map1.get("periods"), UserCouserPeriods.class); //System.out.println(list); List<UserCourseEntity> list1 = BeanMapUtils.mapsToObjects((List<Map<String, Object>>) map1.get("courses"), UserCourseEntity.class);

//工具类

package net.wkang.common.utils;

import com.google.common.collect.Lists; import net.wkang.common.exception.RRException; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; /**  * Created by wolf on 2018/4/9.  */ public class BeanMapUtils {     /**      * 将map装换为javabean对象      * @param map      * @param bean      * @return      */     public static <T> T mapToBean(Map<String, Object> map,T bean) {         try {             ConvertUtils.register(new Converter() {                 @Override                 public Object convert(Class type, Object value) {                     if (value==null){                         return null;                     }                     if (!(value instanceof String)){                         throw new RRException("只支持字符串转换!");                     }                     String str = (String)value;                     if (str.trim().equals("")){                         return null;                     }                     SimpleDateFormat sd = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN);                     try {                         return sd.parse(str);                     } catch (ParseException e) {                         throw new RRException(e.getMessage());                     }                 }             },java.util.Date.class);             BeanUtils.populate(bean,map);         } catch (Exception e) {             throw new RRException(e.getMessage());         }         return bean;     }     /**      * 将List<Map<String,Object>>转换为List<T>      * @param maps      * @param clazz      * @return      * @throws InstantiationException      * @throws IllegalAccessException      */     public static <T> List<T> mapsToObjects(List<Map<String, Object>> maps,Class<T> clazz) throws InstantiationException, IllegalAccessException {         List<T> list = Lists.newArrayList();         if (maps != null && maps.size() > 0) {             Map<String, Object> map = null;             T bean = null;             for (int i = 0,size = maps.size(); i < size; i++) {                 map = maps.get(i);                 bean = clazz.newInstance();                 mapToBean(map, bean);                 list.add(bean);             }         }         return list;     } }

转载请注明原文地址: https://www.6miu.com/read-2650166.html

最新回复(0)