private <T> List<T> maplist2objlist(List<Map<String,Object>> list,Class<T> clazz){
List<T> resultList=new LinkedList<T>();
try {
if(list!=null&&list.size()>0){
BeanInfo beanInfo=Introspector.getBeanInfo(clazz);
PropertyDescriptor[] propertyDescriptors=beanInfo.getPropertyDescriptors();
for(Map<String,Object> map:list){
if(map==null)continue;
T resultObj=clazz.newInstance();
for(Entry<String,Object> entry:map.entrySet()){
for(PropertyDescriptor field:propertyDescriptors){
if(entry.getKey().toLowerCase().equals(field.getName().toLowerCase())){
String fieldName=field.getName();
Method setMethod=field.getWriteMethod();
if(setMethod!=null){
if(entry.getValue()!=null&&entry.getValue() instanceof Map){
@SuppressWarnings("unchecked")
Map<String,Object> inMap=(Map<String, Object>) entry.getValue();
BeanUtils.setProperty(resultObj, fieldName, map2obj(inMap,field.getPropertyType()));
}else{
BeanUtils.setProperty(resultObj, fieldName, entry.getValue());
}
}
break;
}
}
}
resultList.add(resultObj);
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return resultList;
}ip
public <T> Object map2obj(Map<String,Object> map,Class<T> clazz){
T resultObj=null;
try {
if(map!=null){
resultObj=clazz.newInstance();
BeanInfo beanInfo=Introspector.getBeanInfo(clazz);
PropertyDescriptor[] propertyDescriptors=beanInfo.getPropertyDescriptors();
for(Entry<String,Object> entry:map.entrySet()){
for(PropertyDescriptor field:propertyDescriptors){
if(entry.getKey().toLowerCase().equals(field.getName().toLowerCase())){
String fieldName=field.getName();
Method setMethod=field.getWriteMethod();
if(setMethod!=null){
if(entry.getValue()!=null&&entry.getValue() instanceof Map){
@SuppressWarnings("unchecked")
Map<String,Object> inMap=((Map<String, Object>) entry.getValue());
BeanUtils.setProperty(resultObj, fieldName, map2obj(inMap,field.getPropertyType()));
}else{
BeanUtils.setProperty(resultObj, fieldName, entry.getValue());
}
}
}
}
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return resultObj;
}get