Object 转Map,Map转Object方式总结

Object 转Map,Map转Object方式总结商品业务对象定义 ProductProdu newProduct product setId 1L product setName 爱他美 product setProductDt 2022 03 16 第一种 通过 AlibabaFastj 实现 pom xml 文件依赖 dependency groupId com alibaba groupId dependency

商品业务对象定义: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 
    
  

Object 转Map,Map转Object方式总结

最终的依赖:

Object 转Map,Map转Object方式总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月18日 下午9:38
下一篇 2026年3月18日 下午9:38


相关推荐

  • img图片加载失败时的处理

    img图片加载失败时的处理当想对图片加载失败时进行特殊处理,可以使用onerror事件,里面为需要执行的代码。如果由于其他原因导致onerror事件里加载图片时又报错,此时有可能会导致栈溢出而弹框报错,我们只需在inerror里加上一句话即可。

    2022年6月2日
    44
  • java fel_FEL表达式的用法

    java fel_FEL表达式的用法Fel 是开放的 引擎执行中的多个模块都可以扩展或替换 Fel 的执行主要是通过函数实现 运算符 等都是 Fel 函数 所有这些函数都是可以替换的 扩展函数也非常简单 Fel 有双引擎 同时支持解释执行和编译执行 可以根据性能要求选择执行方式 编译执行就是将表达式编译成字节码 生成 java 代码和编译模块都是可以扩展和替换的 FEL 可以进行算数运算以及逻辑运算 也可以调用类的静态方法 非静态方法 只需

    2026年3月19日
    2
  • 解锁增长新密码,科大讯飞AI营销构建全域智能营销新生态

    解锁增长新密码,科大讯飞AI营销构建全域智能营销新生态

    2026年3月14日
    2
  • linux lseek

    linux lseek

    2022年6月25日
    27
  • thinkphp一键清除缓存的方法

    thinkphp一键清除缓存的方法

    2021年11月3日
    56
  • 微信养号防封攻略_防封群微信怎么卖「建议收藏」

    微信养号防封攻略_防封群微信怎么卖「建议收藏」任何企业或者个人做营销或者推广等等一切都离不开微信,有很多企业和个人的生存渠道就是微信,如果把微信号封了,几乎是断了他们生存的机会,在这样的大环境下,把自己企业和个人的微信号养好,就成了非常重要的一个环节。微信能安全使用,是所有一切的基础。但是很多人现在还不懂的去操作养号,这几天我个人也陆续有号被封,所以我就整理了一下微信养号的操作方法。自己可以使用,也顺便分享给更多的人,这个操作方法涵盖了微信每天养号需要必须要操作的动作,这些动作是每天必须要操作的。先说一下微信权重的影响因素微信养号一、微信权重

    2022年5月15日
    97

发表回复

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

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