`
kevin_wanwei
  • 浏览: 117666 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

将java对象属性转化为Map集合

阅读更多
package com.bpcrm.util;

import java.lang.reflect.Field;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import com.bpcrm.customer.form.CustomerSendForm;

public class ObjectUtils {
	/**
	 * 将指定对象属性名称和属性值转化为Map键值对
	 * 
	 * @param obj
	 * @return
	 */
	public static HashMap objectToMap(Object obj) throws Exception {
		if (obj == null) {
			throw new Exception("对象为空");
		}

		Class clazz = obj.getClass();
		HashMap map = new HashMap();
    getClass(clazz,map,obj);
		HashMap newMap = convertHashMap(map);
		return newMap;
	}

	/**
	 * 带入一个对象,一个对象中的属性名称,取得该属性的值
	 * @param obj
	 * @param strProperty
	 * @return
	 * @throws Exception
	 */
	public static String getPropertyValueFormObject(Object obj,
			String strProperty) throws Exception  {
		if (!StringUtils.isValidateString(strProperty)) {
			return "";
		}
		if (obj == null) {
			return "";
		}
		Class clazz = obj.getClass();
		HashMap map = new HashMap();
    getClass(clazz,map,obj);
		HashMap newMap = convertHashMap(map);

		if (newMap == null) {
			return "";
		} else {
			Object objReturn = newMap.get(StringUtils.validateString(strProperty));
			if (objReturn==null) {
				return "";
			} else {
				return objReturn.toString();
			}

		}

	}
	/**
	 *
	*/
	private static void getClass(Class clazz,HashMap map,Object obj) throws Exception{
		if(clazz.getSimpleName().equals("Object")){
			return;
		}
		
	Field[] fields = clazz.getDeclaredFields();
		if (fields == null || fields.length <= 0) {
			throw new Exception("当前对象中没有任何属性值");
		}
		for(int i=0;i<fields.length;i++){
			fields[i].setAccessible(true);
			String name=fields[i].getName();
			Object value=fields[i].get(obj);
			map.put(name,value);
			
		}
		Class superClzz=clazz.getSuperclass();
		getClass(superClzz,map,obj);
	}
	/**
	 * 
	 * @param map
	 * @return
	 * @throws Exception
	 */
	private static HashMap convertHashMap(HashMap map) throws Exception {

		HashMap newMap = new HashMap();
		Set keys = map.keySet();
		Iterator it = keys.iterator();
		while (it.hasNext()) {
			Object key = it.next();
			convertToString(map.get(key), newMap, key);
		}

		return newMap;
	}

	/**
	 * 
	 * @param value
	 * @param newMap
	 * @param key
	 */
	private static void convertToString(Object value, HashMap newMap, Object key) {
		if (value != null) {
			Class clazz = value.getClass();
			if (isBaseType(clazz)) {
				newMap.put(key, value.toString());
			} else if (clazz == String.class) {
				newMap.put(key, value.toString());
			} else if (clazz == Date.class) {
				Date date = (Date) value;
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
				newMap.put(key, sdf.format(date));
			} else if (clazz == Timestamp.class) {
				Timestamp timestamp = (Timestamp) value;
				long times = timestamp.getTime();
				Date date = new Date(times);
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
				newMap.put(key, sdf.format(date));
			} else if (clazz == java.sql.Date.class) {
				java.sql.Date sqlDate = (java.sql.Date) value;
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
				newMap.put(key, sdf.format(sqlDate));
			} else {
				newMap.put(key, value);
			}
		} else {
			newMap.put(key, value);
		}

	}

	/**
	 * 
	 * @param clazz
	 * @return
	 */
	private static boolean isBaseType(Class clazz) {

		if (clazz == Integer.class) {
			return true;
		}
		if (clazz == Long.class) {
			return true;
		}
		if (clazz == Double.class) {
			return true;
		}
		if (clazz == Byte.class) {
			return true;
		}
		if (clazz == Float.class) {
			return true;
		}
		if (clazz == Short.class) {
			return true;
		}
		if (clazz == Boolean.class) {
			return true;
		}
		return false;
	}

	/**
	 * 测试
	 * 
	 * @param args
	 */
	public static void main(String args[]) throws Exception {
		System.out.println("132131");
		CustomerSendForm user = new CustomerSendForm();
		// user.setAge(1);
		user.setId("1");
		// user.setName("qqqq");
		// user.setBirthday(new Date());
		// user.setFriedns(new ArrayList());
		// user.setHobbies(new String[]{"1","2"});
		HashMap map = objectToMap(user);
		Set entrys = map.entrySet();
		Iterator it = entrys.iterator();
		System.out.println("sfsdfsdf");
		while (it.hasNext()) {
			Map.Entry entry = (Map.Entry) it.next();
			System.out.println(entry.getKey() + ":" + entry.getValue());
		}
	}
}

 

分享到:
评论
1 楼 76196333 2012-07-16  
StringUtils 是那个包

相关推荐

    将对象属性转化为map集合的工具类

    将对象属性转化为map集合的工具类

    在Java 8中将List转换为Map对象方法

    在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 首先,我们需要明确Map的key是什么?在这...

    Java xml转化为map

    本篇将详细介绍如何在Java中将XML文件转换为Map对象。 首先,我们需要理解XML的基本结构。XML由一系列元素组成,每个元素可以有属性和子元素。在转化过程中,元素的标签将作为Map的键,元素的文本内容将作为值。...

    java中将数据库中数据赋值给Map对象源代码

    在Java开发中,特别是在使用Spring框架时,将数据库中的数据转换为Map对象是一种常见的操作。这样做可以简化数据处理,使得数据以键值对的形式存储,便于快速查找和使用。Spring框架提供了强大的数据访问抽象,包括...

    将Map转换成Java实体

    在实际开发中,我们有时需要将Map对象的数据转换为Java实体对象,以便进行更复杂的操作。本篇文章将深入探讨如何使用Core Java JDK 1.8中的技术来实现这一转换,特别是通过泛型和反射机制。 首先,让我们了解什么是...

    JAVA对象转化为JSON

    在Java开发中,将Java对象转化为JSON(JavaScript Object Notation)格式是常见的需求,尤其是在Web服务和前后端数据交互中。JSON是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    首先,你需要创建一个`JAXBContext`实例,然后使用`Marshaller`对象将`Map`对象写入XML字符串。 ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; public String mapToXml(Map, ...

    java对象转对象插件

    "java对象转对象插件"旨在简化这个过程,提供了一种便捷的方式来将Java对象转换为Map、List、Set或其他对象,提高了开发效率。下面将详细介绍这个插件的工作原理、使用方法及其优势。 首先,Java对象到Map的转换是...

    java对象List,Map转json格式

    本篇文章将深入探讨如何将Java中的List和Map对象转化为JSON格式,并涉及与AJAX交互的相关知识。 1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以...

    java后台list集合转XML格式数据

    java后台从数据库读取 数据,封装到list集合,控制层转化为XML格式数据

    Map拆分List拆分

    在大数据处理中,Map常用于将复杂的数据结构转化为便于处理的形式。Map拆分是指将一个大Map分成多个小Map,以便在多台机器上并行处理。这种拆分方法可以显著提高计算效率,因为它允许数据在分布式系统中分散,每台...

    Java xml 转 map

    而Map是Java集合框架中的一个接口,它存储键值对,提供灵活的数据组织方式。将XML转换为Map,主要是为了方便数据处理和操作。这个过程通常涉及到XML解析和数据映射。 在描述中提到的“递归 XML 转 MAP”,是指XML...

    json字符串转成 Map/List

    将JSON字符串转化为Map,可以使用`fromJson()`方法: ```java import com.google.gson.Gson; import java.util.Map; String jsonString = "{\"key\":\"value\"}"; Gson gson = new Gson(); Map, Object&gt; map...

    Java对象与Json之间的互相转换的jar包

    例如,`new Gson().toJson(obj)`会将Java对象转化为JSON字符串,而`new Gson().fromJson(jsonStr, YourClass.class)`则能将JSON字符串还原为Java对象。 3. Fastjson:这是阿里巴巴开源的JSON库,以其高性能著称。...

    map转化为list

    标题中的“map转化为list”指的是在编程中,我们经常需要将Map对象的键值对转换成List对象,以便于进一步处理或展示数据。这个过程通常涉及到Java集合框架中的转换操作,尤其是在处理数据结构时。 在Java中,Map是...

    List转换为List

    3. **复制属性到Map**:从Bean对象中获取属性值,将这些值放入Map中。键通常是属性名,值是属性值。 4. **将Map添加到新的List中**:每当创建完一个Map后,将其添加到一个新的List&lt;Map&gt;集合中。 5. **返回新的List...

    json 转化工具类

    在Java编程中,我们经常需要将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串,这时就需要用到JSON转化工具类。这个"json 转化工具类"就是为了解决这样的问题。 在Java中,有很多流行的库可以处理JSON...

    Java面向对象教程 应用软件工程原理编程

    Java面向对象教程是深入理解Java编程的关键,它涵盖了软件工程中的基本原则,并将其应用于实际编程实践。面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它基于“对象”的概念,这些对象封装了...

    java版list-map实现 树结构 父子结构 通俗易懂

    此java类实现了对数据表的分类递归树的实现,为本人倾力之作,后期,会发布js版,敬请期待!

Global site tag (gtag.js) - Google Analytics