可以自己继承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`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...
本知识点重点讲解将List转换为List<Map>的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List转换为List<Map> 在Java中,Bean...
在Java 8中将List转换为Map对象方法 在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 ...
在大数据处理中,Map常用于将复杂的数据结构转化为便于处理的形式。Map拆分是指将一个大Map分成多个小Map,以便在多台机器上并行处理。这种拆分方法可以显著提高计算效率,因为它允许数据在分布式系统中分散,每台...
将list<Map>转换成JavaBean的工具类
将JSON字符串转化为Map,可以使用`fromJson()`方法: ```java import com.google.gson.Gson; import java.util.Map; String jsonString = "{\"key\":\"value\"}"; Gson gson = new Gson(); Map, Object> map...
首先新建一个实体类Person @Data public class Person { /** 编码 */ private String code; /** 名字 */ ...实例化三个对象放入list集合中 public static void main(String[] args) { Person pe
如果JSON包含嵌套的对象或数组,它们会被转换为`Map`或`List`。 对于Map取值,你可以使用`get`方法: ```java String key = "exampleKey"; Object value = jsonData.get(key); ``` 如果值是另一个JSON对象或数组...
接下来我们就通过几个基本常用的及非典型的案例来说明Lambda表达式的使用 ...List 转化为 Map,T.NAME> List转化为Map,T> List转化成Map,Map,Object>> List<Map,Object>>转Map,T> List<Map,Object>>转Map,Map,Object>
如果元素有子元素,子元素将成为嵌套的Map或者List。 要实现XML到Map的转换,我们可以使用Java的标准库JAXB(Java Architecture for XML Binding)或者第三方库如DOM4J、JDOM、Apache Commons Digester等。这里我们...
将java对象list或者map转json数据不需要第三方包,直接使用就可以了,如果你传入的数据不确定是map类型还是list类型,那么自己处理一下就可以了(判断下类型,传入参数改为object)。 如果是json数据转成java对象list...
这个例子中,主要展示了如何将JSON字符串转化为JSONArray对象,以及如何将JSONArray转化为List对象。 1. JSON到JSONArray: 示例代码展示了将不同类型的Java数据结构转化为JSONArray的过程。例如,第1行创建了一个...
"java 遍历Map及Map转化为二维数组的实例" 在 Java 编程语言中,遍历 Map 及将其转化为二维数组是一种常见的操作。本文将详细介绍如何使用 Java 遍历 Map 及将其转化为二维数组,并提供实例代码以供参考。 1. 使用...
本篇文章将深入探讨如何将Java中的List和Map对象转化为JSON格式,并涉及与AJAX交互的相关知识。 1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以...
"JSON 转换为 List 涉及 Java 和 Spring Boot" JSON 转换为 List 是一种常见的数据处理操作,特别是在 Java 和 Spring Boot 应用程序中。下面我们将详细介绍如何使用 Java 和 Spring Boot 将 JSON 字符串转换为 ...
MapStruct实体转换及List转换的方法讲解 MapStruct是一个Java库,用于简化实体对象之间的映射。它提供了简单、灵活和高效的方式来实现实体对象之间的转换。MapStruct支持多种映射方式,包括单个对象的映射、列表的...
String list 转化为 String, 使用Stringbuffer 。。。。。。。。。。。。。。。
2. ExcelUtil.java:这个类专门处理Excel相关的操作,可能是用于将List集合中的数据转化为Excel格式并写入文件。Excel是常见的数据导出格式,尤其适合展示结构化的表格数据。它可能使用Apache POI库或者其他类似的库...