java将list<Map>转为list<Object>对象

package com.sport.sporttrailwalkadminserver.common.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.sport.sporttrailwalkadminserver.po.trailwalk.TrailActivityApplyExport;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.util.StringUtils;

import java.lang.reflect.Type;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class ListUtil {
    /**
     * targetList 需要处理的list
     * targetClass 目标class
    * @return List 处理好的list
    */
    public List listMapParseListObj(List targetList, Class targetClass){
        // 先获取该类的代理对象
        Object obj = null;
        try {
            obj = targetClass.newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

        // 将list转为list对象
        for(int i = 0; i< targetList.size(); i++){
           Map map = (Map)targetList.get(i);                  // 获取每个list里面每个map
           Iterator it = map.keySet().iterator();
           while(it.hasNext()){
               String name = it.next().toString();      // 名称 key
               String value = map.get(name).toString(); // 值  value
               try{
                   //取得值的类形
                   Class type = PropertyUtils.getPropertyType(obj, name);
                   if(!StringUtils.isEmpty(type)){
                       PropertyUtils.setProperty(obj, name, ConvertUtils.convert(value, type));
                   }
               }catch(Exception ex){
                   ex.printStackTrace();
               }
           }
       }


       // 将list<Map> 转为对象进行返回
       List resListObj = Lists.newArrayList();
       for (Object object : targetList) {
           JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(object));
           resListObj.add(jsonObject.toJavaObject((Type)targetClass));
       }

       //返回封装好的集合
       return resListObj;
    }

    public static void main(String[] args) {
        // 获取所有列表信息
        List<Map> allListMap = Lists.newArrayList();
        for (int i = 0; i < 5; i++) {
            Map map = Maps.newHashMap();
            map.put("name", "张三"+i);
            map.put("birthday", "2015-05-06"+i);
            allListMap.add(map);
        }

        ListUtil listUtil = new ListUtil();
        List<TextExport> textExportList = listUtil.listMapParseListObj(allListMap, TextExport.class);
        System.out.println(textExportList.toString());
    }
}

结果:

猜你喜欢

转载自blog.csdn.net/gelinwangzi_juge/article/details/117373323