JavaBean对象与Map对象互相转化

/**
 * 使用org.apache.commons.beanutils进行转换
 */
class A {  

    public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
        if (map == null)
            return null;  

        Object obj = beanClass.newInstance();  

        org.apache.commons.beanutils.BeanUtils.populate(obj, map);  

        return obj;
    }    

    public static Map<?, ?> objectToMap(Object obj) {
        if(obj == null)
            return null;   

        return new org.apache.commons.beanutils.BeanMap(obj);
    }    

}  

/**
 * 使用Introspector进行转换
 */
class B {  

    public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
        if (map == null)
            return null;    

        Object obj = beanClass.newInstance();  

        BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor property : propertyDescriptors) {
            Method setter = property.getWriteMethod();
            if (setter != null) {
                setter.invoke(obj, map.get(property.getName()));
            }
        }  

        return obj;
    }    

    public static Map<String, Object> objectToMap(Object obj) throws Exception {
        if(obj == null)
            return null;      

        Map<String, Object> map = new HashMap<String, Object>();   

        BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor property : propertyDescriptors) {
            String key = property.getName();
            if (key.compareToIgnoreCase("class") == 0) {
                continue;
            }
            Method getter = property.getReadMethod();
            Object value = getter!=null ? getter.invoke(obj) : null;
            map.put(key, value);
        }    

        return map;
    }    

}  

/**
 * 使用reflect进行转换
 */
class C {  

    public static Object mapToObject(Map<String, 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);
            field.set(obj, map.get(field.getName()));
        }   

        return obj;
    }    

    public static Map<String, Object> objectToMap(Object obj) throws Exception {
        if(obj == null){
            return null;
        }   

        Map<String, Object> map = new HashMap<String, Object>();    

        Field[] declaredFields = obj.getClass().getDeclaredFields();
        for (Field field : declaredFields) {
            field.setAccessible(true);
            map.put(field.getName(), field.get(obj));
        }    

        return map;
    }
}  

本文转自:http://www.open-open.com/code/view/1423280939826

时间: 2024-10-08 18:19:16

JavaBean对象与Map对象互相转化的相关文章

转换复杂的JSON对象为 Map对象

最近项目需要跟客户对接一个webservice接口,客户那传json串过来,属于比较复杂的json串,这里跟大家分享下我项目中所用的解析方法: 该方法需要以下jar package com.test; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSON

java对象与map对象相互转换

1 /** 2 * 使用org.apache.commons.beanutils进行转换 3 */ 4 class A { 5 6 public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { 7 if (map == null) 8 return null; 9 10 Object obj = beanClass.newInstance(); 11

转化对象为map方法

言语不多,直接上代码. private Map<String, Object> introspect(Object obj) throws Exception { Map<String, Object> result = new HashMap<String, Object>(); BeanInfo info = Introspector.getBeanInfo(obj.getClass()); for (PropertyDescriptor pd : info.get

javabean转换为map对象

在调用第三方接口发现对方使用map进行接收(不包括秘钥等),将bean类属性转换为map,直接贴代码: /** * JavaBean对象转化成Map对象 * * @param javaBean */public static Map java2Map(Object javaBean) { Map map = new HashMap(16); try { // 获取javaBean属性 BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.ge

JSON数组对象和JSON字符串的转化,map和JSON对象之间的转化

这种用法包括前端和后端: 前端: 1. 转化为JSON对象方便操作 var jsonObj = JSON.parse(str); 得到的是一个json数组对象,可以通过 for (var p in jsonObj){} 来遍历数组中的每个对象,其中p表示key,jsonObj[p]表示key所对应的值. 2. 转化为字符串 var jsonStr = JSON.stringify(jsonObj) 后端:需要用到阿里的fastjson包(其他的用法可以参考博客:https://blog.csdn

C++自学笔记_单词转换map对象_《C++ Primer》

今天在干<C++ Primer>第10章的时候似乎遇到了一点小瓶颈,翻回第8章吃了顿回头草.所以,老话说得好:欠下的总是要还滴 :) 一个小程序,很简单:单词转换程序:程序输入两个文件,第一个文件包括了若干单词对,没对的第一个单词将出现在输入的字符串中,而第二个单词 则是用于输出.本质上,这个文件提供的是单词转化的集合——在遇到第一个单词时,应该将之替换为第二个单词.第二个文件则提供了与要转换的文本. 打个比方:如果单词转换文件的内容为: 而要转换的文本是: Code: #include &l

总结的一些json格式和对象/String/Map/List等的互转工具类

原文:总结的一些json格式和对象/String/Map/List等的互转工具类 源代码下载地址:http://www.zuidaima.com/share/1550463691508736.htm 总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.jar.jackson-mapper-asl-1.7.1.jar这三个jar包 package com.

DozerBeanMapper + 对象转Map方法

1.简介     dozer是一种JavaBean的映射工具,类似于apache的BeanUtils.但是dozer更强大,它可以灵活的处理复杂类型之间的映射.不但可以进行简单的属性映射.复杂的类型映射.双向映射.递归映射等,并且可以通过XML配置文件进行灵活的配置. 2.准备    现在开始就小试一下.    首先,需要下载jar包,    dozer.jar :http://dozer.sourceforge.net/downloading.html    还需要slf4j.jar,comm

java 实体对象与Map之间的转换工具类(自己还没看)

java实体对象与Map之间的转换工具类 import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; public class EntityUtils { /** * 实体类转Map * @param object * @return */ public static Map<String, Object> entityToMap(Object object) { Map<String,