網站首頁 編程語言 正文
商品業務對象定義:Product
Product product = new Product();
product.setId(1L);
product.setName("商品名")
product.setProductDt("2022-03-16")
第一種:通過Alibaba Fastjson實現:
pom.xml 文件依賴
com.alibaba
fastjson
1.2.66
//Object轉Map
Map map = JSONObject.parseObject(JSONObject.toJSONString(product), Map.class);
Map map = JSONObject.parseObject(JSON.toJSONString(product));
//Map轉Object
Product productDto1 = JSON.parseObject(JSON.toJSONString(map), Product.class);
Product productDto2 = JSONObject.toJavaObject(JSON.toJSONString(map), Product.class);
第二種:通過SpringBoot自帶 Jackso實現
一般情況下我們引入MVC,MVC里面幫我們引入了Jackso依賴
org.springframework.boot
spring-boot-starter-web
最終的依賴:
ObjectMapper mapper = new ObjectMapper();
//對象轉map
Map m = mapper.readValue(mapper.writeValueAsString(product), Map.class);
//map轉對象
Product dto = mapper.readValue(mapper.writeValueAsString(m), Product.class);
第三種:通過Apache common Bean工具類實現
Pom.xml文件依賴
commons-beanutils
commons-beanutils
1.9.3
#使用org.apache.commons.beanutils.BeanMap進行轉換,實現Bean轉Map
Map map = new org.apache.commons.beanutils.BeanMap(product);
#使用org.apache.commons.beanutils.BeanUtils將map轉為對象
BeanUtils.populate(product, map);
第四種: 通過反射實現
通過反射實現Bean 轉Map
//Object轉Map
public static Map getObjectToMap(Object obj) throws IllegalAccessException {
Map map = new LinkedHashMap();
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轉Bean
//Map轉Object
public static Object mapToObject(Map
原文鏈接:https://blog.csdn.net/zhouzhiwengang/article/details/123522413
相關推薦
- 2022-12-23 C++中類的成員函數及內聯函數使用及說明_C 語言
- 2023-01-29 python缺失值填充方法示例代碼_python
- 2022-09-24 C#/VB.NET實現PPT或PPTX轉換為圖像功能_C#教程
- 2022-08-16 Hive常用日期格式轉換語法_數據庫其它
- 2022-05-07 Python進程間通信方式_python
- 2022-05-12 ubuntu 20.04 redis fatal error: stdlib.h: No such
- 2022-06-01 Android自制九宮格解鎖控件_Android
- 2022-12-12 Flutter手機權限檢查與申請實現方法詳解_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支