All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gitee.loulan_yxq.owner.json.bean.JsonBeanTool Maven / Gradle / Ivy

package io.gitee.loulan_yxq.owner.json.bean;

import io.gitee.loulan_yxq.owner.core.bean.BeanTool;
import io.gitee.loulan_yxq.owner.core.exception.CopyPropertieException;
import io.gitee.loulan_yxq.owner.json.tool.JsonTool;
import org.apache.commons.beanutils.BeanUtils;

import java.util.Map;

/*********************************************************
 ** 使用json转化的对象工具类
 ** 

** Date: Created in 2022/1/7 18:12 ** @author loulan ** @version 0.0.0 *********************************************************/ public class JsonBeanTool { /** * Map到对象的属性复制,
* 替换了{@link BeanTool#copy(Map, Object)},因为直接的转换存在类型上的问题比较多。 * 目前使用的方式效率上可能低些,内部方式采用的是json数据转换。 * * @param source 复制的源对象(只能是{@link Map}集合) * @param target 复制的目标对象(只能是bean对象) * @author :loulan */ public static void copy(Map source, Object target) { mapToBean(source, target); } /** * 将Map集合数据复制到指定类的对象里,
* 功能等同于{@link JsonBeanTool#mapToBean(Map, Class)}
* 替换了{@link BeanTool#copy(Map, Class)},因为直接的转换存在类型上的问题比较多。 * 目前使用的方式效率上可能低些,内部方式采用的是json数据转换。 * * @param source 复制的源对象 * @param clzz 目标对象的类(必须是可以实例化的bean的类对象) * @return class类文件对应的对象 * @author :loulan */ public static T copy(Map source, Class clzz) { return mapToBean(source, clzz); } /** * 将map集合数据复制到对象属性里面.
* 替换了{@link BeanTool#mapToBean(Map, Object)},因为直接的转换存在类型上的问题比较多。 * 目前使用的方式效率上可能低些,内部方式采用的是json数据转换。 * * @param sourceMap 源map对象数据 * @param targetObj 要整合数据的对象(只能是bean对象) * @author :loulan */ public static void mapToBean(Map sourceMap, Object targetObj) { BeanTool.copy(mapToBean(sourceMap, targetObj.getClass()), targetObj); } /** * 将map集合数据复制到对象属性里面.
* 替换了{@link BeanTool#mapToBean(Map, Class)},因为直接的转换存在类型上的问题比较多。 * 目前使用的方式效率上可能低些,内部方式采用的是json数据转换。 * * @param sourceMap 复制的源对象 * @param clzz 目标对象的类(只能是bean对象的类对象) * @return class类文件对应的对象 * @author :loulan */ public static T mapToBean(Map sourceMap, Class clzz) { try { return JsonTool.parseObj(JsonTool.toJsonBytes(sourceMap), clzz); } catch (Exception ex) { throw new CopyPropertieException(ex); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy