栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Object 转Map,Map转Object方式总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Object 转Map,Map转Object方式总结

商品业务对象定义:Product

Product product = new Product();
product.setId(1L);
product.setName("爱他美")
product.setProductDt("2022-03-16")

第一种:通过Alibaba Fastjson实现:

pom.xml 文件依赖


    com.alibaba
    fastjson
    1.2.66
//Object转Map
Map map = JSONObject.parseObject(JSONObject.toJSonString(product), Map.class);
Map map = JSONObject.parseObject(JSON.toJSonString(product));
//Map转Object
Product productDto1 = JSON.parseObject(JSON.toJSonString(map), Product.class);
Product productDto2 = JSONObject.toJavaObject(JSON.toJSonString(map), Product.class);

第二种:通过SpringBoot自带 Jackso实现

一般情况下我们引入MVC,MVC里面帮我们引入了Jackso依赖

 
        
            org.springframework.boot
            spring-boot-starter-web
        

最终的依赖:

ObjectMapper mapper = new ObjectMapper();
//对象转map
Map m = mapper.readValue(mapper.writevalueAsString(product), Map.class);
//map转对象
Product dto = mapper.readValue(mapper.writevalueAsString(m), Product.class);

 第三种:通过Apache common Bean工具类实现

Pom.xml文件依赖


    commons-beanutils
    commons-beanutils
    1.9.3

#使用org.apache.commons.beanutils.BeanMap进行转换,实现Bean转Map
Map map = new org.apache.commons.beanutils.BeanMap(product);

#使用org.apache.commons.beanutils.BeanUtils将map转为对象
BeanUtils.populate(product, map);

 第四种: 通过反射实现

通过反射实现Bean 转Map

//Object转Map
public static Map getObjectToMap(Object obj) throws IllegalAccessException {
    Map map = new linkedHashMap();
    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转Bean

//Map转Object
public static Object mapToObject(Map 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;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号