java如何将对象转换为map?如何将map转换为对象?

这篇具有很好参考价值的文章主要介绍了java如何将对象转换为map?如何将map转换为对象?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、使用 BeanUtils

2、ObjectMapper

3、Gson

4、Jackson

5、手动进行转换


1、使用 BeanUtils

        BeanUtils 是 Apache Commons BeanUtils 项目提供的一个常用的工具类库,该工具类库提供了一系列很有用的方法,包括将 Bean 转换成 Map 对象、将 Map 对象转换成 Bean 以及获取 Bean 的属性值等方法。

// 将 Map 转换成对象
public static <T> T mapToBean(Map<String, Object> map, Class<T> beanClass) throws Exception {
    T bean = beanClass.newInstance();
    BeanUtils.populate(bean, map);
    return bean;
}

// 将对象转换成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    return BeanUtils.describe(bean);
}

2、ObjectMapper

        ObjectMapper 是 Jackson 库中提供的一个类,它可以将 Json 字符串转换成 Java 对象,也可以将 Java 对象转换成 Json 字符串。在将 Java 对象转换成 Map 对象时也可以使用 ObjectMapper。

// 将 Map 转换成对象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    return mapper.convertValue(map, beanClass);
}

// 将对象转换成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    return mapper.convertValue(bean, Map.class);
}

3、Gson

        Gson 是 Google 提供的一个 Java 库,可以将 Java 对象转换成 Json 字符串,也可以将 Json 字符串转换成 Java 对象。在将 Java 对象转换成 Map 对象时也可以使用 Gson。

// 将 Map 转换成对象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) {
    Gson gson = new Gson();
    String json = gson.toJson(map);
    return gson.fromJson(json, beanClass);
}

// 将对象转换成 Map
public static Map<String, Object> beanToMap(Object bean) {
    Gson gson = new Gson();
    String json = gson.toJson(bean);
    return gson.fromJson(json, new TypeToken<Map<String, Object>>(){}.getType());
}

4、Jackson

        Jackson 是另一个流行的 JSON 库,可以将 Java 对象转换成 Json 字符串,也可以将 Json 字符串转换成 Java 对象。在将 Java 对象转换成 Map 对象时也可以使用 Jackson。

// 将 Map 转换成对象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writeValueAsString(map);
    return mapper.readValue(json, beanClass);
}

// 将对象转换成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writeValueAsString(bean);
    return mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
}

5、手动进行转换

        手动转换的方式是最基本的一种转换方式,通过获取对象的属性值,创建 Map 对象并把属性存入 Map 对象中,或者从 Map 对象中获取值,创建对象并把属性值赋值给对象。手动转换的方式需要自己进行拼接和处理数据类型转换等工作,比较麻烦,但是灵活性比较高。文章来源地址https://www.toymoban.com/news/detail-733347.html

/ 将 Map 转换成对象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) throws Exception {
    T bean = beanClass.newInstance();
    Field[] fields = beanClass.getDeclaredFields();
    for (Field field: fields) {
        field.setAccessible(true);
        String fieldName = field.getName();
        if (map.containsKey(fieldName)) {
            Object value = map.get(fieldName);
            field.set(bean, value);
        }
    }
    return bean;
}

// 将对象转换成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    Map<String, Object> map = new HashMap<>();
    Field[] fields = bean.getClass().getDeclaredFields();
    for (Field field: fields) {
        field.setAccessible(true);
        String fieldName = field.getName();
        Object value = field.get(bean);
        map.put(fieldName, value);
    }
    return map;
}

到了这里,关于java如何将对象转换为map?如何将map转换为对象?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • <Java工具类>json字符串、List Map,List 对象转换为相应的JavaBean对象

    依赖: 工具类(直接上代码): 使用场景: (1).使用泛型方法:把json字符串转换为相应的JavaBean对象 ; 一般用于:Controller层: 例如: (2).List Map转换List 对象:如List,将第二个参数传递为Student对象; (3).List 对象转换List Map:

    2024年02月12日
    浏览(64)
  • Java 对象拷贝与转换-org.mapstruct:mapstruct 包(@Mapper、@Mapping)的使用

    最近在学习技术时候,发现一个特别好用的包,org.mapstruct:mapstruct,它是专门用来处理 domin 实体类与 model 类的属性映射的 它的优势: 很多项目大量映射的方式通过手动get、set,首先写法很low,没有技术含量。而且中间还可能牵涉了很多类型转换,嵌套之类的繁琐操作,非常

    2024年02月14日
    浏览(41)
  • java 对象list使用stream根据某一个属性转换成map的几种方式

    可以使用Java 8中的Stream API将List转换为Map,并根据某个属性作为键或值。以下是一些示例代码: 在这个示例中,将Person对象列表转换为Map,其中键为Person对象的name属性,值为Person对象本身。 在这个示例中,将Person对象列表转换为Map,其中键为Person对象本身,值为Person对象的

    2024年02月13日
    浏览(65)
  • Java中使用MapStruct实现对象转换时使用@Mapping的expression表达式实现自定义转换规则(多对一、获取当前Date)

    Java中使用MapStruct实现对象转换/实体属性赋值/Bean属性映射,避免大量setter和getter: Java中使用MapStruct实现对象转换/实体属性赋值/Bean属性映射,避免大量setter和getter_霸道流氓气质的博客-CSDN博客 上面介绍了mapstruct的简单使用,某些场景下需要自定义转换规则,比如记录时间字

    2024年02月14日
    浏览(46)
  • Java中如何优雅的把Map转为对象

    在项目开发中,经常碰到map转实体对象或者对象转map的场景,工作中,很多时候我们可能比较喜欢使用第三方jar包的API对他们进行转化,而且用起来也还算方便,比如像fastJson就可以轻松实现map和对象的互转,但这里,我想通过反射的方式对他们做转化,也算是对反射的学习

    2024年02月13日
    浏览(38)
  • Java如何遍历Map对象集合(多种方式)6种方式

    今天比昨天,更优秀 Map简介 Map是用于保存具有映射关系的数据,保存两组值,key和value,这两组值可以是任何应用类型的数据。 Map典型的实现类是HashMap、Hashtable(HashMap子类还有LinkedHashMap)、SortedMap子接口及实现类TreeMap、WeakHashMap、IndentityHashMap等 Map遍历第一种 注意:如果

    2024年02月08日
    浏览(48)
  • Java如何使用XMLBeans实现XML和Java对象的相互转换

    原文和更多内容: Java如何使用XMLBeans实现XML和Java对象的相互转换 (techdatafuture.com) 要使用XMLBeans实现XML和Java对象的相互转换,可以按照以下步骤进行操作: 1. 添加XMLBeans Maven依赖: dependency     groupIdorg.apache.xmlbeans/groupId     artifactIdxmlbeans/artifactId     version3.1.0/version /depen

    2024年02月16日
    浏览(50)
  • Java中实体与Map的相互转换

    一、在Java中,可以通过以下方法将实体类转换为Map: 利用Java反射机制: 利用Java 8 Stream API: 以上两种方法都可以将实体类转换为Map。需要注意的是,这些方法仅会将实体类中的属性转换为Map中的键值对,不会包含方法、构造器、父类属性等其他部分。 二、要将map转换为实

    2024年02月05日
    浏览(43)
  • Java 8 中Map转成对象

    功能: 1. HashMap<Object,Object> 转成对象 AlertDeviceInfo 2 List<HashMap<Object,Object>> 转为 List<AlertDeviceInfo 核心代码: 工具包 实体类,如果要控制输出属性,就展示要输出的,比如上面11个属性,只要2个,写一个输出对象,就只有2个属性的,我这根据有个需求,不同公司返

    2024年02月12日
    浏览(56)
  • 如何使用Stream流将List转换为Map

    以下程序用到的基础代码:

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包