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

map转化为list

 
阅读更多

可以自己继承BeanUtils写一个工具类实现map转化为list

 用反射机制,反射时获取字段不能获取其所继承的父类的字段,并且反射和被反射的对象字段名字和类型要一致

 

 List<TbPowerGroup> list = BeanUtils.ListMapToListBean(qr.getDatas(), TbPowerGroup.class);

public Tree getSmallPowerMenu(Map<String, Object> param) throws  Exception {

// TODO Auto-generated method stub

List<TbPowerGroupBeanVo> list= (List<TbPowerGroupBeanVo>) BeanUtils.ListMapToListBean(tbPowerGroupBeanDao.getSmallPowerMenu(param), TbPowerGroupBeanVo.class);

Map mr = new HashMap();

mr.put("NodeName", "根节点");

Tree tree= new Tree("-1", 0, mr, 0);

createMenuTree(tree,list);

return tree;

}

 

 

 

 

 

 

 

package com.esteel.utils;

 

import java.io.PrintStream;

import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.math.BigDecimal;

import java.math.BigInteger;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServletRequest;

 

import com.esteel.web.utils.StringUtils;

 

public class BeanUtils extends org.apache.commons.beanutils.BeanUtils {

public static final String VAR_SPLIT_CHAR = " ";

 

public static String objValueToString(Object obj) {

if (obj == null)

return "对象为NULL";

String result = "";

try {

result = JSONUtils.toJSONString(obj);

} catch (Exception e) {

StringBuffer buf = new StringBuffer();

try {

buf.append(obj.getClass().getName());

buf.append("=>");

 

Method[] methods = obj.getClass().getMethods();

 

if (methods != null) {

int i = 0;

for (int n = methods.length; i < n; i++) {

try {

if (methods[i].getName().startsWith("get")) {

buf.append(methods[i].getName());

buf.append("=");

Object returnValue = methods[i].invoke(obj, new Object[0]);

buf.append(transeObj(returnValue, methods[i].getReturnType()));

buf.append(" ");

}

} catch (Exception e2) {

}

}

}

} catch (Exception e4) {

e.printStackTrace();

buf.append("ERROR:" + e.getMessage());

}

return buf.toString();

}

return result;

}

 

public static String classValueToString(Class<?> objClass) {

if (objClass == null)

return "类名为NULL";

StringBuffer buf = new StringBuffer();

try {

buf.append(objClass.getName());

buf.append("=>");

 

Field[] field = objClass.getFields();

if (field != null) {

int i = 0;

for (int n = field.length; i < n; i++) {

buf.append(field[i].getName());

buf.append("=");

buf.append(transeObj(field[i].get(null), String.class));

buf.append(";");

}

}

} catch (Exception e) {

e.printStackTrace();

buf.append("ERROR:" + e.getMessage());

}

return buf.toString();

}

 

public static String firstToUpper(String strName) {

if (StringUtils.isNull(strName))

return "";

if (strName.length() > 1) {

char ch1 = strName.charAt(0);

char ch2 = strName.charAt(1);

if ((ch1 >= 'A') && (ch1 <= 'Z'))

if (((ch2 >= 'A' ? 1 : 0) & (ch2 <= 'Z' ? 1 : 0)) != 0) {

return strName;

}

return strName.substring(0, 1).toUpperCase() + strName.substring(1, strName.length());

}

 

return strName.toUpperCase();

}

 

public static String firstToLower(String strName) {

if (StringUtils.isNull(strName))

return "";

if (strName.length() > 1) {

char ch1 = strName.charAt(0);

char ch2 = strName.charAt(1);

if ((ch1 >= 'A') && (ch1 <= 'Z'))

if (((ch2 >= 'A' ? 1 : 0) & (ch2 <= 'Z' ? 1 : 0)) != 0) {

return strName;

}

return strName.substring(0, 1).toLowerCase() + strName.substring(1, strName.length());

}

 

return strName.toLowerCase();

}

 

public static Object transeObj(Object srcObj, Class<?> targetClass) {

if ((srcObj == null) || (targetClass == null)) {

return null;

}

if ((srcObj != null) && (targetClass.getName().equals(srcObj.getClass().getName()))) {

return srcObj;

}

if ((targetClass.getName().equals("long")) || (targetClass.getName().equals("int"))) {

if (srcObj == null)

return null;

return Integer.valueOf(getValue(srcObj, 0));

}

if (targetClass.getName().equals("java.lang.String")) {

if (srcObj == null)

return null;

return getValue(srcObj, "");

}

if (targetClass.getName().equals("java.lang.Integer")) {

if (srcObj == null) {

return null;

}

return Integer.valueOf(getValue(srcObj, 0));

}

if (targetClass.getName().equals("java.math.BigInteger")) {

if (srcObj == null) {

return null;

}

return BigInteger.valueOf(getValue(srcObj, 0));

}

if (targetClass.getName().equals("java.math.BigDecimal")) {

if (srcObj == null) {

return null;

}

return BigDecimal.valueOf(getValue(srcObj, 0));

}

if (targetClass.getName().equals("char")) {

if (srcObj == null) {

return null;

}

return (Character) srcObj;

}

if (targetClass.getName().equals("java.util.Date")) {

if (srcObj == null) {

return null;

}

return (Date) srcObj;

}

 

return null;

}

 

public static int getValue(Object obj, int iDefault) {

if (obj == null)

return iDefault;

int iResult = iDefault;

try {

if ((obj instanceof BigDecimal)) {

iResult = ((BigDecimal) obj).intValue();

} else if ((obj instanceof BigInteger)) {

iResult = ((BigInteger) obj).intValue();

} else if ((obj instanceof Integer)) {

iResult = ((Integer) obj).intValue();

} else if ((obj instanceof Double)) {

iResult = ((Double) obj).intValue();

} else if ((obj instanceof Long)) {

iResult = ((Long) obj).intValue();

}

} catch (Exception e) {

iResult = iDefault;

}

return iResult;

}

 

public static String getValue(Object obj, String strDefault) {

if (obj == null)

return strDefault;

String result = strDefault;

try {

if ((obj instanceof String)) {

result = (String) obj;

}

} catch (Exception e) {

result = strDefault;

}

return result;

}

 

public static Object getValue(Object obj) {

if (obj == null)

return "";

Object result = obj;

try {

if ((obj instanceof String)) {

result = StringUtils.trimWhitespace((String) obj);

} else if ((obj instanceof String[])) {

String[] tmpArray = (String[]) obj;

if (tmpArray != null) {

if (tmpArray.length == 1) {

result = tmpArray[0];

} else {

StringBuffer buff = new StringBuffer();

int i = 0;

for (int n = tmpArray.length; i < n; i++) {

buff.append(i).append("=").append(getValue(tmpArray[i]));

}

result = buff.toString();

}

}

} else if ((obj instanceof Integer[])) {

Integer[] tmpArray = (Integer[]) obj;

if (tmpArray != null) {

if (tmpArray.length == 1) {

result = tmpArray[0];

} else {

StringBuffer buff = new StringBuffer();

int i = 0;

for (int n = tmpArray.length; i < n; i++) {

buff.append(i).append("=").append(getValue(tmpArray[i]));

}

result = buff.toString();

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

 

public static void copyInProperties(Object target, Object source, String properties) {

if (!StringUtils.isNull(properties)) {

String[] propertiesArray = StringUtils.tokenizeToStringArray(properties, ",");

copyInProperties(source, target, propertiesArray);

}

}

 

public static void copyInProperties(Object target, Object source, String[] properties) {

if ((properties == null) || (properties.length == 0))

return;

int i = 0;

for (int n = properties.length; i < n; i++) {

String fieldName = properties[i];

Method getMethod = null;

Method setMethod = null;

try {

String getMethodName = "get" + firstToUpper(fieldName);

getMethod = source.getClass().getMethod(getMethodName, new Class[0]);

} catch (Exception e) {

System.out.println("无法获取" + source.getClass().getName() + "的属性" + fieldName + "方法...");

}

if (getMethod != null) {

try {

String setMethodName = "set" + firstToUpper(fieldName);

setMethod = target.getClass().getMethod(setMethodName, new Class[] { getMethod.getReturnType() });

} catch (Exception e) {

System.out.println("无法获取" + target.getClass().getName() + "的属性" + fieldName + "方法...");

}

if (setMethod != null) {

try {

if ((getMethod != null) && (setMethod != null)) {

Object value = getMethod.invoke(source, new Object[0]);

setMethod.invoke(target, new Object[] { value });

}

} catch (Exception e) {

System.out.println("从" + source.getClass().getName() + "中设置" + target.getClass().getName() + "的属性" + fieldName + "值出现异常" + e.getMessage() + "...");

}

}

}

}

}

 

public static boolean isNull(Object obj) {

if (obj == null)

return true;

if ((obj instanceof String))

return StringUtils.isNull((String) obj);

if ((obj instanceof Object[])) {

Object[] objs = (Object[]) obj;

if (objs.length > 0) {

return isNull(objs[0]);

}

return true;

}

 

return obj == null;

}

 

public static String toString(HttpServletRequest request) {

StringBuffer buff = new StringBuffer();

buff.append("contextPath=").append(request.getContextPath()).append(" ");

buff.append("remotePort=").append(request.getRemotePort()).append(" ");

buff.append("remoteAddr=").append(request.getRemoteAddr()).append(" ");

buff.append("requestURI=").append(request.getRequestURI()).append(" ");

buff.append("queryString=").append(request.getQueryString()).append(" ");

Cookie[] cookies = request.getCookies();

if (cookies != null) {

int i = 0;

for (int n = cookies.length; i < n; i++) {

buff.append("cookieName=").append(cookies[i].getName()).append(" ");

buff.append("cookieValue=").append(cookies[i].getValue()).append(" ");

}

}

Map<String, Object> paraMap = request.getParameterMap();

for (Map.Entry<String, Object> ent : paraMap.entrySet()) {

buff.append("reqName=").append((String) ent.getKey()).append(" ");

buff.append("reqValue=").append(getValue(ent.getValue())).append(" ");

}

return buff.toString();

}

 

public static String toString(Exception e) {

StringBuffer buff = new StringBuffer();

buff.append(e.getMessage());

buff.append(e.getCause().toString());

return buff.toString();

}

 

public static Object MapToBean(Map<?, ?> map, Class<?> c)

throws InstantiationException, IllegalAccessException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {

Object o = c.newInstance();

if ((map == null) || (map.size() == 0) || (c == null)) {

return null;

}

Field[] fields = c.getDeclaredFields();

for (int i = 0; i < fields.length; i++) {

Field field = fields[i];

Class<?> fieldType = field.getType();

Class<?>[] parameterTypes = { fieldType };

Method method = c.getMethod("set" + getMethodName(field.getName()), parameterTypes);

 

Object tvalue = getFieldValue(field, map);

if (tvalue != null) {

Object[] parameterValue = createObjectArr(fieldType.getName(), tvalue);

method.invoke(o, parameterValue);

}

}

return o;

}

 

private static Object getFieldValue(Field field, Map<?, ?> map) {

try {

return map.get(field.getName().toUpperCase());

} catch (RuntimeException ex) {

}

return null;

}

 

private static Object[] createObjectArr(String typeName, Object tvalue) {

Object[] returnObjs = null;

try {

if (("int".equals(typeName)) || ("java.lang.Integer".equals(typeName))) {

returnObjs = new Object[] { Integer.valueOf(tvalue.toString()) };

} else if ("java.lang.String".equals(typeName)) {

returnObjs = new Object[] { String.valueOf(tvalue) };

} else if (("float".equals(typeName)) || ("java.lang.Float".equals(typeName))) {

returnObjs = new Object[] { Float.valueOf(tvalue.toString()) };

} else if (("double".equals(typeName)) || ("java.lang.Double".equals(typeName))) {

if ("".equals(tvalue.toString())) {

tvalue = "0";

}

returnObjs = new Object[] { Double.valueOf(tvalue.toString()) };

} else if (("byte".equals(typeName)) || ("java.lang.Byte".equals(typeName))) {

returnObjs = new Object[] { (Byte) tvalue };

} else if (("char".equals(typeName)) || ("java.lang.Character".equals(typeName))) {

returnObjs = new Object[] { (Character) tvalue };

} else if (("boolean".equals(typeName)) || ("java.lang.Boolean".equals(typeName))) {

returnObjs = new Object[] { (Boolean) tvalue };

} else if (("long".equals(typeName)) || ("java.lang.Long".equals(typeName))) {

returnObjs = new Object[] { Long.valueOf(tvalue.toString()) };

} else if (("short".equals(typeName)) || ("java.lang.Short".equals(typeName))) {

returnObjs = new Object[] { Short.valueOf(tvalue.toString()) };

}

return new Object[] { tvalue };

} catch (RuntimeException ex) {

throw ex;

}

}

 

public static List<?> ListMapToListBean(List<Map<String, Object>> list, Class<?> c)

throws SecurityException, IllegalArgumentException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {

List<Object> returnList = new ArrayList();

if ((list == null) || (list.size() == 0) || (c == null)) {

return returnList;

}

for (int i = 0; i < list.size(); i++) {

Object tobj = MapToBean((Map) list.get(i), c);

if (tobj != null) {

returnList.add(tobj);

}

}

return returnList;

}

 

private static String getMethodName(String field) {

try {

if (field.length() > 1) {

String frist = field.substring(0, 1);

String other = field.substring(1);

return frist.toUpperCase() + other;

}

return field.toUpperCase();

} catch (RuntimeException ex) {

throw ex;

}

}

}

 

分享到:
评论

相关推荐

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

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    List转换为List

    本知识点重点讲解将List转换为List&lt;Map&gt;的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List转换为List&lt;Map&gt; 在Java中,Bean...

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

    在Java 8中将List转换为Map对象方法 在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 ...

    Map拆分List拆分

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

    将list转换成JavaBean

    将list&lt;Map&gt;转换成JavaBean的工具类

    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...

    不用遍历的方式在对象集合list中抽取属性集合转化为map或list

    首先新建一个实体类Person @Data public class Person { /** 编码 */ private String code; /** 名字 */ ...实例化三个对象放入list集合中 public static void main(String[] args) { Person pe

    Java读取json文件,并转化为map取值

    如果JSON包含嵌套的对象或数组,它们会被转换为`Map`或`List`。 对于Map取值,你可以使用`get`方法: ```java String key = "exampleKey"; Object value = jsonData.get(key); ``` 如果值是另一个JSON对象或数组...

    Lambda-List的转化操作

    接下来我们就通过几个基本常用的及非典型的案例来说明Lambda表达式的使用 ...List 转化为 Map,T.NAME&gt; List转化为Map,T&gt; List转化成Map,Map,Object&gt;&gt; List&lt;Map,Object&gt;&gt;转Map,T&gt; List&lt;Map,Object&gt;&gt;转Map,Map,Object&gt;

    Java xml转化为map

    如果元素有子元素,子元素将成为嵌套的Map或者List。 要实现XML到Map的转换,我们可以使用Java的标准库JAXB(Java Architecture for XML Binding)或者第三方库如DOM4J、JDOM、Apache Commons Digester等。这里我们...

    Java List或Map对象和json字符串数据的相互转化

    将java对象list或者map转json数据不需要第三方包,直接使用就可以了,如果你传入的数据不确定是map类型还是list类型,那么自己处理一下就可以了(判断下类型,传入参数改为object)。 如果是json数据转成java对象list...

    json与list转化

    这个例子中,主要展示了如何将JSON字符串转化为JSONArray对象,以及如何将JSONArray转化为List对象。 1. JSON到JSONArray: 示例代码展示了将不同类型的Java数据结构转化为JSONArray的过程。例如,第1行创建了一个...

    java 遍历Map及Map转化为二维数组的实例

    "java 遍历Map及Map转化为二维数组的实例" 在 Java 编程语言中,遍历 Map 及将其转化为二维数组是一种常见的操作。本文将详细介绍如何使用 Java 遍历 Map 及将其转化为二维数组,并提供实例代码以供参考。 1. 使用...

    java对象List,Map转json格式

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

    json转为list 涉及 java springboot

    "JSON 转换为 List 涉及 Java 和 Spring Boot" JSON 转换为 List 是一种常见的数据处理操作,特别是在 Java 和 Spring Boot 应用程序中。下面我们将详细介绍如何使用 Java 和 Spring Boot 将 JSON 字符串转换为 ...

    MapStruct实体转换及List转换的方法讲解

    MapStruct实体转换及List转换的方法讲解 MapStruct是一个Java库,用于简化实体对象之间的映射。它提供了简单、灵活和高效的方式来实现实体对象之间的转换。MapStruct支持多种映射方式,包括单个对象的映射、列表的...

    list转String

    String list 转化为 String, 使用Stringbuffer 。。。。。。。。。。。。。。。

    导出实体list集合的工具类

    2. ExcelUtil.java:这个类专门处理Excel相关的操作,可能是用于将List集合中的数据转化为Excel格式并写入文件。Excel是常见的数据导出格式,尤其适合展示结构化的表格数据。它可能使用Apache POI库或者其他类似的库...

Global site tag (gtag.js) - Google Analytics