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)
上一篇 2022年4月19日 下午2:40
下一篇 2022年4月19日 下午2:40


相关推荐

  • Vue(四)绑定样式、自定义指令

    Vue(四)绑定样式、自定义指令vue 绑定内联样式 绑定 class 自定义指令

    2026年3月17日
    2
  • WdatePicker使用方法

    WdatePicker使用方法转载 https www cnblogs com goloving p 7163697 html 只需要引入 js 文件即可 自己试了个小实例 复制代码 DOCTYPE tml 会员名 出生日期 复制代码 其中 class Wdate 加与不加 会在页面上有所差异 加上 class 的如图示会有个时间的小图

    2026年3月17日
    2
  • 详解 清除浮动 的多种方式(clearfix)

    详解 清除浮动 的多种方式(clearfix)说明本文适合知道 HTML 与 CSS 基础知识的读者 或者想要了解清除浮动背后原理的读者 1 什么是浮动首先我们需要知道定位元素在页面中的位置就是定位 解决问题之前我们先来了解下几种定位方式 1 普通流定位 static 默认方式 普通流定位 又称为文档流定位 是页面元素的默认定位方式页面中的块级元素 按照从上到下的方式逐个排列页面中的行内元素 按照从左到右的方式逐个排列但是如

    2026年3月19日
    1
  • Ubuntu 10.04 更新源[通俗易懂]

    Ubuntu 10.04 更新源[通俗易懂]1.sudogedit/etc/apt/sources.list编辑你的源列表,将原来的内容全部删除,当然之前也可以用sudocp/etc/apt/sources.list/etc/apt

    2022年7月2日
    28
  • 设计模式学习总结——观察者模式「建议收藏」

    设计模式学习总结——观察者模式

    2022年1月25日
    75
  • linux复制文件夹及赋予权限

    1.cp命令命令:cpdir1/a.docdir2表示将dir1下的a.doc文件复制到dir2目录下cp-rdir1dir2表示将dir1及其dir1下所包含的文件复制到dir2下cp-rdir1/.dir2表示将dir1下的文件复制到dir2,不包括dir1目录说明:cp参数-i:询问,如果目标文件已经存在,则会询问是否覆盖;2.scp命令例如:scpid_rsa.pubrouter_17@IP:/home/router_17/.ssh/authori…

    2022年4月7日
    251

发表回复

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

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