1、简介
dozer是一种JavaBean的映射工具,类似于apache的BeanUtils。但是dozer更强大,它可以灵活的处理复杂类型之间的映射。不但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,并且可以通过XML配置文件进行灵活的配置。
2、准备
现在开始就小试一下。
首先,需要下载jar包,
dozer.jar :http://dozer.sourceforge.net/downloading.html
还需要slf4j.jar,commons-lang.jar,commons-beanutil.jar, commons-loggin.jar
http://lishaorui.iteye.com/blog/1151513
import com.google.common.collect.Lists; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.dozer.DozerBeanMapper; public class BeanMapper { private static DozerBeanMapper dozer = new DozerBeanMapper(); /** * 构造新的destinationClass实例对象,通过source对象中的字段内容 * 映射到destinationClass实例对象中,并返回新的destinationClass实例对象。 * * @param source 源数据对象 * @param destinationClass 要构造新的实例对象Class */ public static <T> T map(Object source, Class<T> destinationClass) { return dozer.map(source, destinationClass); } public static <T> List<T> mapList(Collection sourceList, Class<T> destinationClass) { List destinationList = Lists.newArrayList(); for (Iterator i$ = sourceList.iterator(); i$.hasNext(); ) { Object sourceObject = i$.next(); Object destinationObject = dozer.map(sourceObject, destinationClass); destinationList.add(destinationObject); } return destinationList; } /** * 将对象source的所有属性值拷贝到对象destination中. * * @param source 对象source * @param destination 对象destination */ public static void copy(Object source, Object destinationObject) { dozer.map(source, destinationObject); } }
使用:
SmIaasQuotaV result = null; try { result = limitService.getLimitDetails(id,parentId); if(result != null){ response.setData(BeanMapper.map(result, Map.class)); response.setSuccess(true); } }
BeanMapper.map(result, Map.class)
转换为Map对象。
public static <T> Map<String, T> toMap(Object target) { return toMap(target,false); } /** * 将目标对象的所有属性转换成Map对象 * * @param target 目标对象 * @param ignoreParent 是否忽略父类的属性 * * @return Map */ public static <T> Map<String, T> toMap(Object target,boolean ignoreParent) { return toMap(target,ignoreParent,false); } /** * 将目标对象的所有属性转换成Map对象 * * @param target 目标对象 * @param ignoreParent 是否忽略父类的属性 * @param ignoreEmptyValue 是否不把空值添加到Map中 * * @return Map */ public static <T> Map<String, T> toMap(Object target,boolean ignoreParent,boolean ignoreEmptyValue) { return toMap(target,ignoreParent,ignoreEmptyValue,new String[0]); } /** * 将目标对象的所有属性转换成Map对象 * * @param target 目标对象 * @param ignoreParent 是否忽略父类的属性 * @param ignoreEmptyValue 是否不把空值添加到Map中 * @param ignoreProperties 不需要添加到Map的属性名 */ public static <T> Map<String, T> toMap(Object target,boolean ignoreParent,boolean ignoreEmptyValue,String... ignoreProperties) { Map<String, T> map = new HashMap<String, T>(); List<Field> fields = ReflectionUtils.getAccessibleFields(target.getClass(), ignoreParent); for (Iterator<Field> it = fields.iterator(); it.hasNext();) { Field field = it.next(); T value = null; try { value = (T) field.get(target); } catch (Exception e) { e.printStackTrace(); } if (ignoreEmptyValue && ((value == null || value.toString().equals("")) || (value instanceof Collection && ((Collection<?>) value).isEmpty()) || (value instanceof Map && ((Map<?,?>)value).isEmpty()))) { continue; } boolean flag = true; String key = field.getName(); for (String ignoreProperty:ignoreProperties) { if (key.equals(ignoreProperty)) { flag = false; break; } } if (flag) { map.put(key, value); } } return map; }
相关推荐
spring boot3+jpa+lombok+mapstruct实现的restful api例子
主要介绍了在Java 8中将List转换为Map对象方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
json工具类,json转为对象,json转map。对象转json。便于使用
vc+mapx+data+map
简单的对象转换成json对象,和把对象转换成map的技巧
gfs+BigTable+map reduce 三合一.zip
将一个对象快捷转换成map 将map在转换成对象 可以直接获取webresult对象中data数据
Java代码Object对象转Map
European+Mode+S+Station+Coverage+Map+Interface+Control+Document.pdf
调试技巧 —— 如何利用windbg + dump + map分析程序异常 http://blog.csdn.net/wangningyu/article/details/6748138
对象与map 的转换 详细解读可以单个转换 也可以多个循环转化,增加 调用方法的兼容性
对象与map互相转换工具类
JSONObject是Map接口的一个实现类 json转map的6种实现方法,可根据自己的喜好进行选择
java一键xml转map,一键map转xml工具类,代码已封装好,一个方法即可将两种格式文本互转,注意是互转,网上很多只有xml转map,并不支持map转xml
SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名
Vue.js+Symfony+OpenStreetMap的演示应用地图程序.zip
map.toString()后转换成Map类型
java Map转Bean Bean转Map Map排序
jsp上使用object[]看不懂吧?写vo太烦琐了?ok,都交给map吧、本工具类的使命就是让map代替所有的vo,让编程变得更美好。 附有详细的使用例子。 java精英团队十年编程精华。
Java代码Map转Object对象