`
guirudaoge
  • 浏览: 18598 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多

有的时候 我们想将一个JavaBean 转换成 Map,或者反之。

那么就使用下面的转化工具吧!

 

package com.jiuzi;

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

public class BeanUtils {
	/**
	 * 将一个 JavaBean 对象转化为一个  Map
	 * @param bean 要转化的JavaBean 对象
	 * @return  转化出来的  Map 对象
	 * @throws IntrospectionException
	 * @throws IllegalAccessException
	 * @throws IllegalArgumentException
	 * @throws InvocationTargetException
	 */
	public static Map<String, Object> convertBeanToMap(Object bean) throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
		Class<?> type = bean.getClass();
		Map<String, Object> returnMap = new HashMap<String, Object>();

		BeanInfo beanInfo = Introspector.getBeanInfo(type);
		PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

		for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
			String propertyName = propertyDescriptor.getName();

			if (!"class".equals(propertyName)) {
				Method readMethod = propertyDescriptor.getReadMethod();
				Object result = readMethod.invoke(bean, new Object[0]);
				if (null != result) {
					returnMap.put(propertyName, result);
				} else {
					returnMap.put(propertyName, "");
				}
			}
		}
		return returnMap;
	}
	
	/**
	 * 将一个map对象转化为JavaBean
	 * @param type  要转化的类型
	 * @param map 包含属性值的 map
	 * @return 转化出来的 JavaBean 对象
	 * @throws IntrospectionException 
	 * @throws InstantiationException 
	 * @throws IllegalAccessException 
	 * @throws IllegalArgumentException
	 * @throws InvocationTargetException
	 */
	public static Object convertMapToBean(Class<?> type,Map<String, Object> map) throws IntrospectionException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
		BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性
		Object obj = type.newInstance(); // 创建 JavaBean 对象
		PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();  
		for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
			String propertyName = propertyDescriptor.getName();  
			
			if (map.containsKey(propertyName)) {
				try {
					Object value = map.get(propertyName);
					Object[] args = new Object[]{value};
					propertyDescriptor.getWriteMethod().invoke(obj, args);
				} catch (Exception e) {
					System.err.println("The failure of "+propertyName+" assignment");
				}
				
			}
			
		}
		return obj;
	}
}

 

分享到:
评论

相关推荐

    map与Javabean相互转换实例

    总结起来,`Map`和`JavaBean`的相互转换在Java开发中是常见需求,通过反射机制可以高效地实现这一功能。在处理大量数据转换时,自定义的转换工具类如`collectionUtils`能够极大提升开发效率,使代码更加简洁和易懂。...

    JavaBean与map的互相转换

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

    json转Map,转javaBean,javBean和Map转json

    Map和JavaBean是Java中的两种数据结构,它们与JSON有着紧密的关联,因为它们都能用来存储和表示数据。本篇将详细介绍如何在Java中进行JSON到Map、JavaBean以及反之的转换,并探讨相关工具的使用。 1. JSON到Map的...

    json与JavaBean、Map和list之间的转换问题.doc

    在 Java 开发中,经常需要将 JSON 数据与 JavaBean、Map 和 List 进行转换。这篇文章将介绍如何将 List 集合、Map 集合和 JavaBean 转换成 JSON 串,并给出相应的示例代码。 1. List 集合转换成 JSON 串 List 集合...

    Desktop_javaBean转换Map工具_

    在Java中,将JavaBean转换为Map的基本步骤是遍历JavaBean的所有属性,通过反射获取其getter方法,然后将属性名和对应的属性值放入Map中。以下是一个简单的示例: ```java import java.beans.Introspector; import ...

    Bean与Map转换工具类BeanMapConverter.java

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

    基于Java反射的map自动装配JavaBean工具类设计示例代码

    在上面的代码中,我们使用 Java 反射机制获取了 JavaBean 对象的所有字段信息,然后将这些字段信息与 Map 对象的键值对进行匹配,并将匹配的结果设置到 JavaBean 对象中。这样我们就可以将 Map 对象自动装配到 ...

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

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

    List<Map>转化为List工具类

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

    javabean_map_string和json互转详细文档+例子

    JavaBean和Map以及String与JSON之间的转换在Java开发中是非常常见的操作。这涉及到Java对象的序列化和反序列化,通常用于数据交换或持久化存储。以下是对这些转换的详细解释和示例。 1. JavaBean到JSON JavaBean是...

    xml 与JAVAbean转换

    XML(eXtensible Markup Language)是...总的来说,XML与JavaBean之间的转换是Java开发中常见的任务,涉及到多种技术和库,包括但不限于JAXB、DOM、SAX以及各种辅助工具。理解这些概念和用法对于处理XML数据至关重要。

    用于将map转换成对象的jar包

    在Java编程中,有时我们需要将Map对象转换为Java对象,特别是在处理从数据库查询结果或JSON数据解析出来的数据时。这个任务可以通过使用特定的库来简化,例如Apache Commons BeanUtils库,该库包含在"用于将map转换...

    Java和JSON之间的相互转换所需要所有的jar包及实例

    本篇文章将详细讲解如何在Java中使用`json-lib`库进行JSON与Java对象之间的相互转换,并提供相关的jar包列表。 首先,`json-lib`是一个非常流行的Java JSON库,它提供了多种Java数据类型与JSON之间的转换功能,包括...

    优雅的对象转换解决方案,为什么更推荐MapStruct呢.docx

    在Java开发中,JavaBean之间的转换通常是一个繁琐的任务,尤其是在大型项目中,大量的转换代码不仅影响代码的整洁度,还可能引入潜在的错误。传统的转换方式如使用BeanUtils或手动编写转换方法各有优缺点,但Map...

    JAVA-JSON工具转换类

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

    java与json互相转换的jar包

    Java与JSON互相转换是开发过程中常见的需求,尤其是在服务器端与前端之间传递数据时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性、易写性和高效性,被广泛应用于Web服务。Java则是...

    java中用ObjectMapper类实现Json与bean的转换示例

    主要给大家介绍了关于在java中用ObjectMapper类实现Json与bean转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。

    首字母大写的json串转为javabean实例

    在Java编程中,将JSON字符串转换为JavaBean实例是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而JavaBean是Java中的一种对象模型,用于封装...

    JavaBean与Excel 数据行转换工具

    excel-bean 主要功能是 JavaBean 与 Excel 数据行之间的互相转换,普通项目中都会有Excel的导入导出功能,使用该工具可以大大提高工作效率,使开发者不必关系复杂的Excel解析。 主要解决 Excel 行类型数据与 ...

    JavaBean和Map转换封装类的方法

    在Java编程中,JavaBean和Map之间的转换是常见的操作,特别是在数据绑定和数据处理的场景。下面我们将详细探讨如何实现这种转换以及相关的封装类方法。 首先,JavaBean是一种符合特定规范的Java类,通常用于封装...

Global site tag (gtag.js) - Google Analytics