java map转object_json对象转map集合

java map转object_json对象转map集合第一种方法:fastJosnimportcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;Object转MapFindArchiveDtofindArchiveDto=newFindArchiveDto();findArchiveDto.setContractStatus(“降龙”);…

大家好,又见面了,我是你们的朋友全栈君。

FindArchiveDto findArchiveDto = new FindArchiveDto();
findArchiveDto.setContractStatus("降龙");
findArchiveDto.setCustName("明华");
findArchiveDto.setDepartmentName("赵无极");
fastjson转换方法
//Object转Map
Map map = JSONObject.parseObject(JSONObject.toJSONString(findArchiveDto), Map.class);
Map<String,Object> map = JSONObject.parseObject(JSON.toJSONString(findArchiveDto));
//Map转Object
FindArchiveDto findArchiveDto1 = JSON.parseObject(JSON.toJSONString(map), FindArchiveDto.class);
FindArchiveDto findArchiveDto2 = JSONObject.toJavaObject(JSON.toJSONString(map), FindArchiveDto.class);
jackson的转换
ObjectMapper mapper = new ObjectMapper();
//对象转map
Map m = mapper.readValue(mapper.writeValueAsString(findArchiveDto), Map.class);
//map转对象
FindArchiveDto dto = mapper.readValue(mapper.writeValueAsString(m), FindArchiveDto.class);
还可以用org.apache.commons.beanutils.BeanMap进行转换
Map<String, Object> map = new org.apache.commons.beanutils.BeanMap(findArchiveDto);
还可以用org.apache.commons.beanutils.BeanUtils将map转为对象
BeanUtils.populate(findArchiveDto, map);
//Object转Map
public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException {
    Map<String, Object> map = new LinkedHashMap<String, Object>();
    Class<?> clazz = obj.getClass();
    System.out.println(clazz);
    for (Field field : clazz.getDeclaredFields()) {
        field.setAccessible(true);
        String fieldName = field.getName();
        Object value = field.get(obj);
        if (value == null){
            value = "";
        }
        map.put(fieldName, value);
    }
    return map;
}
//Map转Object
public static Object mapToObject(Map<Object, Object> map, Class<?> beanClass) throws Exception {
    if (map == null)
        return null;
    Object obj = beanClass.newInstance();
    Field[] fields = obj.getClass().getDeclaredFields();
    for (Field field : fields) {
        int mod = field.getModifiers();
        if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
            continue;
        }
        field.setAccessible(true);
        if (map.containsKey(field.getName())) {
            field.set(obj, map.get(field.getName()));
        }
    }
    return obj;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125104.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 万字长文告诉新手如何学习Python图像处理(上篇完结 四十四) | 「Python」有奖征文

    万字长文告诉新手如何学习Python图像处理(上篇完结 四十四) | 「Python」有奖征文这篇文章是图像处理的最后一篇文章,后面我们将进入新的章节。图像处理文章主要讲解的图像处理方法包括图像几何运算、图像量化采样、图像点运算、图像形态学处理、图像增强、图像平滑、图像锐化、图像特效、图像分割、傅里叶变换与霍夫变换、图像分类等。个人感觉如果你是编程初学者、Python初学者或图像处理爱好者,这个系列真心适合你学习,并且这篇文章算是Python图像处理的学习路线,希望您喜欢。

    2022年10月14日
    1
  • Linux查看系统基本信息,版本信息(最全版)

    Linux查看系统基本信息,版本信息(最全版)Linux下如何查看版本信息,包括位数、版本信息以及CPU内核信息、CPU具体型号1.uname-a  (Linux查看版本当前操作系统内核信息)2.cat/proc/version(Linux查看当前操作系统版本信息)3.cat/etc/issue 或cat/etc/redhat-release(Linux查看版本当前操作系统发行版信息)4.cat/…

    2022年6月6日
    163
  • 三万字带你了解那些年面过的Java八股文[通俗易懂]

    三万字带你了解那些年面过的Java八股文[通俗易懂]目录????前言1️⃣Java基础知识????基础知识导图????IO流????Lambda????&和&&的区别?????在java中如何跳出当前的多重循环?????面向对象的三大特征????”==”和equals方法究竟有什么区别?????三个与取整有关的方法????Java中运算符✨重载和重写的区别?????String和StringBuffuer、StringBuilder的区别?????java中有几种方法实现一个线程?用什么关键字修饰同步方法?stop()和suspend

    2022年6月1日
    35
  • Java项目—图书馆[通俗易懂]

    Java项目—图书馆[通俗易懂]//Library.book包//book包下Book类packageLibrary.book;publicclassBook{privateStringname;privateStringauthor;privateStringid;privateintprice;privateStringtype;…

    2022年7月8日
    26
  • json对象与json字符串_字符数组与字符串的区别

    json对象与json字符串_字符数组与字符串的区别JSON对象有时候在做项目的时候时常将这两个概念弄混淆,尤其是在使用springmvc的时候,后台@RequestBody接受的是一个json格式的字符串,一定是一个字符串。先介绍一下json对象,首先说到对象的概念,对象的属性是可以用:对象.属性进行调用的。例如:varperson={“name”:”tom”,”sex”:”男”,”age”:”24″}//json对象console.l

    2022年10月7日
    3
  • Jenkins(7)参数化构建(构建git仓库分支)「建议收藏」

    Jenkins(7)参数化构建(构建git仓库分支)「建议收藏」前言当我们的自动化项目越来越多的时候,在代码仓库会提交不同的分支来管理,在用jenkins来构建的时候,我们希望能通过参数化构建git仓库的分支。下载安装GitParameter插件系统管理-

    2022年7月30日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号