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里面呢
求大神指点

12个回答

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

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

qq_28138713
qq_28138713 回复tianguozhiya: 或者自己写一个工具类来转换,目前我并不知道有什么方法可以直接把map转为实体类,抱歉
大约 2 年之前 回复
tianguozhiya
去你大爷的昵称已存在 需要这么复杂吗
大约 2 年之前 回复

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

weixin_42747772
叁水家天下 给大佬点赞,为了3个c币
大约 2 年之前 回复
qq_41711084
零零零~ 回复tianguozhiya: 虽然没懂 你可以去搜索一下有关这方面的知识 例如这个你看一下合适不https://blog.csdn.net/psvmc/article/details/20804605
大约 2 年之前 回复
qq_41711084
零零零~ 回复tianguozhiya: 没看懂 你这是做啥的
大约 2 年之前 回复
tianguozhiya
去你大爷的昵称已存在 代码就是第一行贴出来的那句 列表获取到了 但是下一步我就不会转化了
大约 2 年之前 回复

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

flybridy
flybridy 回复tianguozhiya: 那就只有遍历map,获取key对应的值,再new对象了。没其他方法,
大约 2 年之前 回复
tianguozhiya
去你大爷的昵称已存在 怎么把hashMap转为实体类
大约 2 年之前 回复

可以试下这句万能金句: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);
Javaer_dog
行走的老熊 刚才我看到有一个问题,这个BeanUtils在一个实体类嵌套一个实体类中使用体验不佳,会多一个class的key-value
一年多之前 回复

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,在用实体类来接收。写个转换函数

共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐