去你大爷的昵称已存在
2018-07-20 02:19
采纳率: 20.6%
浏览 7.8k
已采纳

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条回答 默认 最新

  • 编程爱好者熊浪 2018-07-21 02:39
    已采纳

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

    点赞 打赏 评论
  • 零零零~ 2018-07-20 02:49

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

    点赞 打赏 评论
  • qq_28138713 2018-07-20 02:52

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

    点赞 打赏 评论
  • flybridy 2018-07-20 03:28

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

    点赞 打赏 评论
  • 百块富翁 2018-07-20 04:02

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

    点赞 打赏 评论
  • fighterGuy 2018-07-20 06:05
        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);
    
    点赞 打赏 评论
  • fighterGuy 2018-07-20 06:10

    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
    }
    }
    }

                        望采纳
    
    点赞 打赏 评论
  • 方格白帽 2018-07-20 07:52

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

    点赞 打赏 评论
  • 往事一块六毛八 2018-07-20 09:25

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

    点赞 打赏 评论
  • 情似生活 2018-07-20 09:45

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

    点赞 打赏 评论
  • kzc10119 2018-07-21 04:07

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

    点赞 打赏 评论
  • 一掬净土 2018-07-26 03:03

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

    点赞 打赏 评论

相关推荐 更多相似问题