javabean与map互转

/**
     * 将一个 JavaBean 对象转化为一个  Map
     * @param bean 要转化的JavaBean 对象
     * @return 转化出来的  Map 对象
  * @throws Exception
     */

public static Map convertBean(Object bean){
      Map returnMap = new HashMap();
     if(bean==null){
      return returnMap;
     }
        Class type = bean.getClass();
      
        BeanInfo beanInfo;
  try {
   beanInfo = Introspector.getBeanInfo(type);
   PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
        
         for (int i = 0; i< propertyDescriptors.length; i++) {
             PropertyDescriptor descriptor = propertyDescriptors[i];
             String propertyName = descriptor.getName();
             if (!propertyName.equals("class")) {
                 Method readMethod = descriptor.getReadMethod();
                 Object result = null;
     try {
      result = readMethod.invoke(bean, new Object[0]);
     } catch (Exception e) {
      //DevLog.error(type.getName() + "转换成Map出错,方法:" + readMethod.getName(), e);
     }
                 if (result != null) {
                     returnMap.put(propertyName, result);
                 } else {
                     returnMap.put(propertyName, "");
                 }
             }
         }
  } catch (IntrospectionException e1) {
   DevLog.error(type.getName() + "转换成Map出错:", e1);
  }
       
        return returnMap;
    }

/**
     * 将一个 Map 对象转化为一个 JavaBean
     * @param type 要转化的类型
     * @param map 包含属性值的 map
     * @return 转化出来的 JavaBean 对象
     * @throws Exception
     */

public static Object convertMap(Class type, Map map) throws Exception {                 BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性             Object obj = type.newInstance(); // 创建 JavaBean 对象

// 给 JavaBean 对象的属性赋值         PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();         for (int i = 0; i< propertyDescriptors.length; i++) {             PropertyDescriptor descriptor = propertyDescriptors[i];             String propertyName = descriptor.getName();             if (map.containsKey(propertyName)) {

     // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。                 Object value = map.get(propertyName);

Object[] args = new Object[1];

      args[0] = value;

    descriptor.getWriteMethod().invoke(obj, args);

}

}         return obj;

}

时间: 2024-08-19 08:15:50

javabean与map互转的相关文章

javaBean与Map&lt;String,Object&gt;互转

1. 为什么要实现javaBean与Map<String,Object>相互转换? 用过spring的都知道spring的MVC框架中有一个BaseCommandController对象,利用这个对象我们就可以很方便的将从客户端传递过来的参数封装到一个JavaBean对象中去,而不需要我们request.getParameter("name");bean.setName(name);了,从而也简化了不少的工作.如果大家用过BeanUtils.populate的话,就知道,这

Json、JavaBean、Map、XML之间的互转

思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20171018</version> </dependency> entity public class Stud

json、javaBean、xml互转的几种工具介绍

Json.javaBean.xml互转的几种工具介绍 工作中经常要用到Json.JavaBean.Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考. 现在主流的转换工具有json-lib.jackson.fastjson等,我为大家一一做简单介绍,主要还是以代码形式贴出如何简单应用这些工具的,更多高级功能还需大家深入研究. 首先是json-lib,算是很早的转换工具了,用的人很多,说实在现在完全不适合了,缺点比较多,依赖的第三方实在是比较多,效率低下,API也比较繁琐,说他纯粹是因

bean 与 map 互转.

package com.sprucetec.tms.distribute.utils; import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.lang.re

json、javaBean、xml互转的几种工具介绍 (转载)

工作中经常要用到Json.JavaBean.Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考. 现在主流的转换工具有json-lib.jackson.fastjson等,我为大家一一做简单介绍,主要还是以代码形式贴出如何简单应用这些工具的,更多高级功能还需大家深入研究. 首先是json-lib,算是很早的转换工具了,用的人很多,说实在现在完全不适合了,缺点比较多,依赖的第三方实在是比较多,效率低下,API也比较繁琐,说他纯粹是因为以前的老项目很多人都用到它.不废话,开始上代码. 需

JavaBean和Map转换封装类

package com.ljq.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map

基于java反射的javabean和map相互转换的工具类

话不多说,代码如下 package com.study; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; /** * PackageName com.study * Description please write description. * User: yh * Time: 2016/11/29 16:57 */ public class mapUtil { /** * javaB

javaBean List Map json(转)

1.依赖的包 根据:http://json-lib.sourceforge.net/ 可见json-lib使用需要依赖一下包:   下载地址:http://download.csdn.net/download/zfxinli/2117292  或百度盘:http://pan.baidu.com/s/1hq5kGQC 非常有用的参考: (1)json在线转换器:http://json.parser.online.fr/ (2)json介绍:http://www.json.org/json-zh.h

将javabean转为map类型,然后返回一个map类型的值

/**     *将javabean转为map类型,然后返回一个map类型的值      * @param obj     * @return     */    public static Map<String, Object> beanToMap(Object obj) {        Map<String, Object> params = new HashMap<String, Object>(0);        try {            Prope