java Map和实体类互转

我现在需求是这样的

 List<Map<String,Object>> list1 = feedbackService.getUnReadFeedBack(telphone);
这个是我获取到的列表

但是我的action中的返回类型是 PageMsg> list = null; 这个 PageMsg里面封装的是

 public PageMsg(boolean isSuccess, int code, String msg, T data, int pageNo, int totalSize) {
        super(isSuccess, code, msg, data);
        this.pageNo = pageNo;
        this.totalSize = totalSize;
    }

现在我如何把list1里面的值放到list的data里面呢
求大神指点

这不是已经写好了吗,那个data的类型是T,是泛型,你直接把你那个list1放在data的位置就可以了,前台就会获取到这个list的map对象了,之后就是前台解析了,可以用EL表达式。

可以给返回完整代码看一下吗

map转不了实体类,可以先转json在转实体类,或者转xml再转实体

可以试下这句万能金句:List serviceStanderdAllVo1 = JSONObject.parseArray(JSONObject.toJSONString(serviceStandardEntity),ServiceStandardAllVo.class);
或者去了解下java8的lambda表达式

    Map<String,Object> map = new HashMap<String,Object>();

    //2.给一些参数
    map.put("id", 2);
    map.put("name", "EZ");
    map.put("age", 22);
    map.put("classID", 3);
    map.put("birthday", new Date());

    //需求:把map的属性值拷贝到S中
    Student s = new Student();
    BeanUtils.copyProperties(s, map);

    System.out.println(s);

BeanUtils.copyProperties(s, map);
该方法可以互转,方法源码:
// Copy the properties, converting as necessary
if (orig instanceof DynaBean) {
DynaProperty[] origDescriptors =
((DynaBean) orig).getDynaClass().getDynaProperties();
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
// Need to check isReadable() for WrapDynaBean
// (see Jira issue# BEANUTILS-61)
if (getPropertyUtils().isReadable(orig, name) &&
getPropertyUtils().isWriteable(dest, name)) {
Object value = ((DynaBean) orig).get(name);
copyProperty(dest, name, value);
}
}
} else if (orig instanceof Map) {
Iterator entries = ((Map) orig).entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
String name = (String)entry.getKey();
if (getPropertyUtils().isWriteable(dest, name)) {
copyProperty(dest, name, entry.getValue());
}
}
} else /* if (orig is a standard JavaBean) */ {
PropertyDescriptor[] origDescriptors =
getPropertyUtils().getPropertyDescriptors(orig);
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
if ("class".equals(name)) {
continue; // No point in trying to set an object's class
}
if (getPropertyUtils().isReadable(orig, name) &&
getPropertyUtils().isWriteable(dest, name)) {
try {
Object value =
getPropertyUtils().getSimpleProperty(orig, name);
copyProperty(dest, name, value);
} catch (NoSuchMethodException e) {
// Should not happen
}
}
}

                    望采纳

不要挣扎了,map不能转成对象。老老实实赋值吧

循环遍历赋值就好了啊。。。。。

遍历Map,在用实体类来接收。写个转换函数

定义时把泛型传入就行
PageMsg>> pageMsg = new PageMsg<>(true,200,"消息",list1,1,10);

你list1本身就是个对象啊,java嘛,面向对象,直接将list1传到T data里就可以了。前台获取到之后解析即可呢。

老实说,没看明白要什么转换什么。你最好给个原始数据样例,需求样例。我的认识中,实体类在map或者list中都只是对象。所以,一般只存在数组和map的转换。没什么map跟实体类的关系