`
frank1998819
  • 浏览: 752061 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Java 中 Map与JavaBean之间的相互转化 (转)

    博客分类:
  • Java
 
阅读更多

原作者:http://blog.csdn.net/chenxuejiakaren/article/details/7763061

 

/**
* 将一个 JavaBean 对象转化为一个 Map
* @param bean 要转化的JavaBean 对象
* @return 转化出来的 Map 对象
* @throws IntrospectionException 如果分析类属性失败
* @throws IllegalAccessException 如果实例化 JavaBean 失败
* @throws InvocationTargetException 如果调用属性的 setter 方法失败
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static Map convertBean(Object bean)
throws IntrospectionException, IllegalAccessException, InvocationTargetException {
Class type = bean.getClass();
Map returnMap = new HashMap();
BeanInfo 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 = readMethod.invoke(bean, new Object[0]);
if (result != null) {
returnMap.put(propertyName, result);
} else {
returnMap.put(propertyName, "");
}
}
}
return returnMap;
}

 

 

 

 

/**
* 将一个 Map 对象转化为一个 JavaBean
* @param type 要转化的类型
* @param map 包含属性值的 map
* @return 转化出来的 JavaBean 对象
* @throws IntrospectionException 如果分析类属性失败
* @throws IllegalAccessException 如果实例化 JavaBean 失败
* @throws InstantiationException 如果实例化 JavaBean 失败
* @throws InvocationTargetException 如果调用属性的 setter 方法失败
*/
@SuppressWarnings("rawtypes")
public static Object convertMap(Class type, Map map)
throws IntrospectionException, IllegalAccessException,
InstantiationException, InvocationTargetException {
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;
}

分享到:
评论

相关推荐

    JavaBean与map的互相转换

    使用Java反射机制,将给定的javaBean转化为Map数类型,以及将Map类型的数据转化为JavaBean

    List<Map>转化为List工具类

    一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List&lt;Map, Object&gt;&gt;结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后...此工程中就是解决List&lt;Map, Object&gt;&gt;转化为JavaBean工具类实现

    Bean与Map转换工具类BeanMapConverter.java

    Bean与MAP间互转换的工具类。 1.将一个 Map 对象转化为一个 JavaBean,可指定BEAN的类型; 2.将一个 JavaBean 对象转化为一个 HashMap;

    Javabean和map相互转化方法代码示例

    在 Java 开发中,经常需要将 JavaBean 对象和 Map 对象相互转换。例如,在导入数据时,可能需要将 Map 对象转换为 JavaBean 对象,以便更方便地处理数据。本文将介绍 JavaBean 和 Map 相互转换的方法代码示例。 一...

    map转Java实体类

    将一个 Map对象转化为JavaBean的形式返回,抛弃一些出现异常的问题与方法,遵循Java开发规范

    JAVA-JSON工具转换类

    `json-lib`是一个Java语言实现的JSON库,它提供了多种数据类型到JSON的转换,包括JavaBean、Map、List、数组等。`json-lib-2.4-jdk15.jar`是这个库的一个版本,兼容JDK15。它提供了许多功能,例如将Java对象转化为...

    使用GSON库将Java中的map键值对应结构对象转换为JSON

    在Java编程中,将数据结构转化为JSON格式是常见的需求,特别是在网络通信和数据存储中。GSON库由Google提供,它允许我们方便地在Java对象和JSON格式之间进行转换。本示例主要介绍如何利用GSON库将Java中的Map对象...

    json_lib使用实例:java对象与json字符串的互转

    在Java中,为了方便地进行JSON与Java对象之间的转换,我们常常会使用到一些库,比如`json-lib`。这个库提供了丰富的API,使得我们可以轻松地将Java对象转化为JSON字符串,以及将JSON字符串反序列化为Java对象。 ###...

    java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)

    在Java中操作MongoDB数据库时,常常需要将Java对象(对象Bean)与MongoDB的数据表示对象DBObject进行相互转换。这主要是因为MongoDB的驱动程序使用DBObject来存储和检索数据,而我们通常会用面向对象的方式来定义和...

    java中使用的json类库

    - 将Java对象转换为JSON字符串:例如,一个JavaBean或Map可以被转化为JSON格式的字符串,便于在网络间传输。 - 从JSON字符串解析出Java对象:相反,接收到的JSON字符串可以被解析成相应的Java对象,以便进一步处理。...

    beanutils的jar包.zip

    在描述中提到的“json转化JavaBean对象封装键值对参数”,意味着我们将讨论如何使用BeanUtils来处理JSON数据与JavaBean之间的相互转换。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web...

    java json使用的jar包

    Json-lib是一个支持多种Java环境和JSON实现的库,提供了将JSON与其他Java数据结构(如JavaBean、Map、List等)相互转换的功能。 2. `commons-collections-3.2.jar`:Apache Commons Collections库,提供了对集合...

    JSON-lib

    总的来说,JSON-lib是一个全面的JSON处理工具,它简化了JSON和Java对象之间的交互,使得开发人员能够在Java环境中轻松地使用JSON数据。无论是在Web服务、Android应用还是其他Java项目中,JSON-lib都是一个值得信赖的...

    各种对象转成JSON字符串 (2).docx

    在IT领域,特别是在Web开发中,JSON是传输数据的主要方式之一,因为它能够有效地将复杂的数据结构转化为字符串,便于在网络间传递。 在Java中,将各种对象转换为JSON字符串通常需要借助于一些库,如`org.json`或`...

    json数据相关jar包

    例如,使用Apache Commons BeanUtils库,你可以轻松地将JavaBean对象转化为JSON字符串,如下所示: ```java import org.apache.commons.beanutils.BeanUtils; import org.json.JSONObject; public class Json...

    json帮助类

    `json-lib`可以将Java对象(如MAP、BEAN、LIST等)转化为JSON字符串,反之亦可,使得JSON数据能方便地在Java应用中使用。`json-lib`还支持多种数据结构,如Array、HashMap、ArrayList、LinkedList等,并且可以与...

    json jar包

    它能够将数组、集合、Map、日期等Java类型转化为JSON格式,并能从JSON字符串中反序列化回Java对象。 2. **ezmorph-1.0.3.jar**:Ezmorph库是一个用于Java对象转换的工具,它允许开发者在运行时将一种类型的对象转换...

    java Bean与json对象间的转换实例讲解

    在Java开发中,Java Bean和JSON对象之间的转换是常见的数据处理操作,特别是在处理...总的来说,Java Bean与JSON对象之间的转换是Java Web开发中的基础技能,理解并熟练掌握这些方法能帮助开发者更有效地处理数据交换。

    Json工具类

    综上所述,`Json工具类`主要是为了方便开发者在Java项目中进行JSON数据的处理,通过引入Gson或json-lib库,可以轻松地完成对象与JSON字符串之间的相互转化,从而简化数据交换的流程。在具体使用时,根据项目需求和...

    json运行所必须的jar包

    Json-lib提供了将JSON与Java对象(如JavaBean、Map、List等)相互转换的功能,使得在Java中操作JSON变得更加简单。 5. **ezmorph-1.0.6.jar**:Ezmorph库主要用于对象的转换,它提供了一种动态的方式来转换Java对象...

Global site tag (gtag.js) - Google Analytics