当前位置: 首页 > news >正文

Java:Bean实体对象和Map互相转换

本文介绍Java的Bean实体对象和Map互相转换的几种方法

目录

    • 方式一:Hutool工具类
    • 方式二:Jackson库
    • 参考

测试用到的实体类

@Data
class Person {private String name;private Integer age;
}

方式一:Hutool工具类

依赖

<!-- hutool -->
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.4.6</version>
</dependency>

引入工具类

import cn.hutool.core.bean.BeanUtil;

对象转换为Map

Person person = new Person();
person.setName("Alice");
person.setAge(30);// 对象转换为Map
Map<String, Object> map = BeanUtil.beanToMap(person);System.out.println(map);
// 输出:{name=Alice, age=30}

Map转换为对象

Map<String, Object> map = new HashMap<>();
map.put("name", "Alice");
map.put("age", 30);// Map转换为对象
Person person = BeanUtil.mapToBean(map, Person.class, true, null);System.out.println(person);
// 输出:Person(name=Alice, age=30)

方式二:Jackson库

依赖

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.4</version>
</dependency>
import com.fasterxml.jackson.databind.ObjectMapper;

对象转换为Map

Person person = new Person();
person.setName("Alice");
person.setAge(30);ObjectMapper objectMapper = new ObjectMapper();// 对象转换为Map
Map<String, Object> personMap = objectMapper.convertValue(person, Map.class);
System.out.println(personMap);
// 输出:{name=Alice, age=30}

Map转换为对象

Map<String, Object> map = new HashMap<>();
map.put("name", "Alice");
map.put("age", 30);ObjectMapper objectMapper = new ObjectMapper();// Map转换为对象
Person person = objectMapper.convertValue(map, Person.class);
System.out.println(person);
// 输出:Person(name=Alice, age=30)

参考

1、java中对象和Map互相转换的几种方式

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 内容长度不同的div如何自动对齐展示
  • C/C++蓝屏整人代码
  • npm install时报错 reason: certificate has expired
  • PCB(印制电路板)制造涉及的常规设备
  • 阿里云DSW实例中安装并运行Neo4J
  • 万界星空科技MES系统生产计划管理的功能
  • JAVASE-医疗管理系统项目总结
  • 【力扣】最小栈
  • 【Unity C#基础】浅谈List底层逻辑
  • npm相关指令
  • 现场可重构CPLD芯片应用案例—蓝牙音箱
  • PHP 与 1688 详情 API 接口的完美对接
  • UE4-初见虚幻引擎
  • java包装类 及其缓存
  • 浏览器的缓存
  • 网络传输文件的问题
  • ES6指北【2】—— 箭头函数
  • [译] 怎样写一个基础的编译器
  • 2017-09-12 前端日报
  • Android 架构优化~MVP 架构改造
  • angular2 简述
  • Linux后台研发超实用命令总结
  • Puppeteer:浏览器控制器
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Terraform入门 - 1. 安装Terraform
  • TypeScript实现数据结构(一)栈,队列,链表
  • Vue UI框架库开发介绍
  • vue-router的history模式发布配置
  • Xmanager 远程桌面 CentOS 7
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 经典排序算法及其 Java 实现
  • 深度学习入门:10门免费线上课程推荐
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 通过git安装npm私有模块
  • 一个SAP顾问在美国的这些年
  • 移动端唤起键盘时取消position:fixed定位
  • postgresql行列转换函数
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​queue --- 一个同步的队列类​
  • #数据结构 笔记三
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (1)svelte 教程:hello world
  • (33)STM32——485实验笔记
  • (Java)【深基9.例1】选举学生会
  • (Ruby)Ubuntu12.04安装Rails环境
  • (二)springcloud实战之config配置中心
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (每日一问)基础知识:堆与栈的区别
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四) Graphivz 颜色选择
  • (推荐)叮当——中文语音对话机器人
  • (一)基于IDEA的JAVA基础12
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例