`

JavaBean与Map相互转换

 
阅读更多
package com.piend.tongzhan.common;

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

/**
 * Bean对象与Map相互转换
 * 
 * @author 唐超
 * 
 */
@SuppressWarnings("unchecked")
public class JavaBean2Map {

	public static Map<String, Object> convertBean(Object bean) {
		Map<String, Object> map = new HashMap<String, Object>();
		Field fields[] = bean.getClass().getDeclaredFields();
		try {
			Field.setAccessible(fields, true);
			for (int i = 0; i < fields.length; i++) {
				map.put(fields[i].getName(), fields[i].get(bean));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return map;
	}

	public static Object convertMap(Class<?> type, Map<String, Object> map) {
		Object ob = null;
		try {
			if (map != null && map.size() > 0) {
				ob = type.newInstance();
				Field fields[] = type.getDeclaredFields();
				Field.setAccessible(fields, true);
				for (int i = 0; i < fields.length; i++) {
					if (map.containsKey(fields[i].getName())) {
						fields[i].set(ob, map.get(fields[i].getName()));
					}
				}
			}
		} catch (Exception e) {

			e.printStackTrace();
		}
		return ob;
	}

	public static Map convertBean1(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;
	}

	public static Object convertMap1(Class type, Map map)
			throws IntrospectionException, IllegalAccessException,
			InstantiationException, InvocationTargetException {
		BeanInfo beanInfo = Introspector.getBeanInfo(type);
		Object obj = type.newInstance();
		PropertyDescriptor[] propertyDescriptors = beanInfo
				.getPropertyDescriptors();
		for (int i = 0; i < propertyDescriptors.length; i++) {
			PropertyDescriptor descriptor = propertyDescriptors[i];
			String propertyName = descriptor.getName();
			if (map.containsKey(propertyName)) {
				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

    map与Javabean相互转换实例

    本文将深入探讨如何通过反射机制实现`Map`和`JavaBean`的相互转换。 首先,我们要理解`JavaBean`的基本概念。`JavaBean`是符合JavaBeans规范的类,它通常具有公共的无参构造器、getter和setter方法以及私有的属性,...

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

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

    对象与map互相转换工具类

    对象与map互相转换工具类

    JavaBean与Excel 数据行转换工具

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

    xml和java bean互相转换工具包(简单易用)

    xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...

    java与json互相转换的jar包

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

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

    首先,`json-lib`是一个非常流行的Java JSON库,它提供了多种Java数据类型与JSON之间的转换功能,包括JavaBean、Map、List、数组等。要使用`json-lib`,你需要确保你的项目中包含了以下jar包: 1. json-lib-2.x.y....

    beanutils的jar包.zip

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

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

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

    Dm4J操作xml文件.rar

    这个库允许开发者将XML文档中的节点与JavaBean对象相互转换,同时提供了多种查询方法,使得处理XML变得更加方便。 首先,让我们深入了解一下Dm4J的核心功能: 1. **XML节点与JavaBean的映射**:Dm4J通过解析XML...

    castor入门说明

    Castor 提供了一种简单有效的方法来实现 JavaBean 与 XML 文件之间的相互转换。通过自定义 XML 映射文件,可以灵活地控制 XML 标签与 Java 属性之间的映射关系,从而满足各种应用场景的需求。此外,通过配置 `castor...

    json jar包

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

    json包

    在JSON与Java对象相互转换时,BeanUtils可以协助完成JavaBean到JSON的映射。 5. `ezmorph-1.0.3.jar`:EZMorph库提供了动态对象转换功能,使得将一种数据类型转换为另一种数据类型变得简单。在处理JSON时,可能会...

    java json使用的jar包

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

    JSONObject完整jar包

    此外,`JSONObject`还支持与JavaBean之间的互相转换,通过`toMap()`方法可以将`JSONObject`转换为`Map`,而`fromObject()`则可以将Java对象转换为`JSONObject`。 总结来说,`JSONObject`是Java处理JSON数据的强大...

    java与json之间的互操作.pdf

    总结来说,JSON-lib是Java开发者处理JSON数据的强大工具,它可以方便地进行Java对象与JSON之间的转换,以及JSON与XML之间的互操作,简化了数据交换和处理的复杂性。在实际项目中,根据需求选择合适的版本和配置,...

    json所需jar包

    这个库提供了JSON与Java数据结构(如JavaBean、Map、List等)之间的相互转换功能,使得开发者能够方便地在JSON和Java之间进行数据交换。 在具体使用时,比如我们有一个Java对象需要转换为JSON字符串,可以先使用...

Global site tag (gtag.js) - Google Analytics