Object转Map和Map转Object(对象转map,map转对象)

Object转Map和Map转Object(对象转map,map转对象)第一种方法:fastJosnimportcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;Object转MapFindArchiveDtofindArchiveDto=newFindArchiveDto();findArchiveDto.setContractStatus(“降龙”);…

大家好,又见面了,我是你们的朋友全栈君。

FindArchiveDto findArchiveDto = new FindArchiveDto();
findArchiveDto.setContractStatus("降龙");
findArchiveDto.setCustName("明华");
findArchiveDto.setDepartmentName("赵无极");
fastjson转换方法
//Object转Map
Map map = JSONObject.parseObject(JSONObject.toJSONString(findArchiveDto), Map.class);
Map<String,Object> map = JSONObject.parseObject(JSON.toJSONString(findArchiveDto));
//Map转Object
FindArchiveDto findArchiveDto1 = JSON.parseObject(JSON.toJSONString(map), FindArchiveDto.class);
FindArchiveDto findArchiveDto2 = JSONObject.toJavaObject(JSON.toJSONString(map), FindArchiveDto.class);
jackson的转换
ObjectMapper mapper = new ObjectMapper();
//对象转map
Map m = mapper.readValue(mapper.writeValueAsString(findArchiveDto), Map.class);
//map转对象
FindArchiveDto dto = mapper.readValue(mapper.writeValueAsString(m), FindArchiveDto.class);
还可以用org.apache.commons.beanutils.BeanMap进行转换
Map<String, Object> map = new org.apache.commons.beanutils.BeanMap(findArchiveDto);
还可以用org.apache.commons.beanutils.BeanUtils将map转为对象
BeanUtils.populate(findArchiveDto, map);
//Object转Map
public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException {
    Map<String, Object> map = new LinkedHashMap<String, Object>();
    Class<?> clazz = obj.getClass();
    System.out.println(clazz);
    for (Field field : clazz.getDeclaredFields()) {
        field.setAccessible(true);
        String fieldName = field.getName();
        Object value = field.get(obj);
        if (value == null){
            value = "";
        }
        map.put(fieldName, value);
    }
    return map;
}
//Map转Object
public static Object mapToObject(Map<Object, Object> map, Class<?> beanClass) throws Exception {
    if (map == null)
        return null;
    Object obj = beanClass.newInstance();
    Field[] fields = obj.getClass().getDeclaredFields();
    for (Field field : fields) {
        int mod = field.getModifiers();
        if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
            continue;
        }
        field.setAccessible(true);
        if (map.containsKey(field.getName())) {
            field.set(obj, map.get(field.getName()));
        }
    }
    return obj;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130464.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows server 2012 R2 部署WSUS补丁服务[通俗易懂]

    Windows server 2012 R2 部署WSUS补丁服务[通俗易懂]一、WSUS安装要求1、硬件要求:对于多达13000个客户端的服务器,建议使用以下硬件:*4CoreE5-26092.1GHz的处理器*8GB的RAM2、软件要求:要使

    2022年7月2日
  • 学生信息管理系统(纯前端页面)———无后端数据库

    学生信息管理系统(纯前端页面)———无后端数据库无后端数据库版本的—-学生信息管理系统文末下载地址这学期的前端作业很奇怪,不用数据库实现学生信息管理系统,随便写了下。具体功能如下:实现了查看信息(单击查看按钮,查看具体信息,且为不可修改格式) 实现了修改信息功能(单击修改按钮,可以对学生的信息进行修改) 实现了新增功能(可以新增加一个学生的信息,添加到最后边) 实现了删除功能(在复选框中选择几个就删除几个) 实现了全…

    2022年9月20日
  • extremeDB_render props模式

    extremeDB_render props模式内存数据库extremeDB

    2022年10月14日
  • vpp命令总结_gdb调试命令总结

    vpp命令总结_gdb调试命令总结createsubBondEthernet0834创建子接口,tag是834setinterfaceiptableBondEthernet0.8341将此接口设置在fib1里setinterfaceipaddressBondEthernet0.834192.168.0.250/24设置接口ipsetinterfaces

    2022年10月25日
  • redis分布式集群3种架构方案

    redis分布式集群3种架构方案

    2021年7月6日
  • linux常用命令杀死进程_kill杀死进程命令

    linux常用命令杀死进程_kill杀死进程命令在做项目的时候经常会出现程序死机、锁死、无响应等情况,这时候就需要找到程序相应的进程将其杀掉即可。步骤如下:1.定位进程top命令:可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。输入top后可以看到如下的界面,实时显示进程情况。ps命令:processstatus的简称,用于报告当…

    2022年4月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号