網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
商品業(yè)務(wù)對(duì)象定義:Product
Product product = new Product();
product.setId(1L);
product.setName("商品名")
product.setProductDt("2022-03-16")
第一種:通過(guò)Alibaba Fastjson實(shí)現(xiàn):
pom.xml 文件依賴
com.alibaba
fastjson
1.2.66
//Object轉(zhuǎn)Map
Map map = JSONObject.parseObject(JSONObject.toJSONString(product), Map.class);
Map map = JSONObject.parseObject(JSON.toJSONString(product));
//Map轉(zhuǎn)Object
Product productDto1 = JSON.parseObject(JSON.toJSONString(map), Product.class);
Product productDto2 = JSONObject.toJavaObject(JSON.toJSONString(map), Product.class);
第二種:通過(guò)SpringBoot自帶 Jackso實(shí)現(xiàn)
一般情況下我們引入MVC,MVC里面幫我們引入了Jackso依賴
org.springframework.boot
spring-boot-starter-web
最終的依賴:
ObjectMapper mapper = new ObjectMapper();
//對(duì)象轉(zhuǎn)map
Map m = mapper.readValue(mapper.writeValueAsString(product), Map.class);
//map轉(zhuǎn)對(duì)象
Product dto = mapper.readValue(mapper.writeValueAsString(m), Product.class);
第三種:通過(guò)Apache common Bean工具類實(shí)現(xiàn)
Pom.xml文件依賴
commons-beanutils
commons-beanutils
1.9.3
#使用org.apache.commons.beanutils.BeanMap進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)Bean轉(zhuǎn)Map
Map map = new org.apache.commons.beanutils.BeanMap(product);
#使用org.apache.commons.beanutils.BeanUtils將map轉(zhuǎn)為對(duì)象
BeanUtils.populate(product, map);
第四種: 通過(guò)反射實(shí)現(xiàn)
通過(guò)反射實(shí)現(xiàn)Bean 轉(zhuǎn)Map
//Object轉(zhuǎn)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;
}
通過(guò)反射實(shí)現(xiàn)Map轉(zhuǎn)Bean
//Map轉(zhuǎn)Object
public static Object mapToObject(Map
原文鏈接:https://blog.csdn.net/zhouzhiwengang/article/details/123522413
相關(guān)推薦
- 2022-10-07 C語(yǔ)言直接選擇排序算法詳解_C 語(yǔ)言
- 2022-06-14 教你使用docker查看運(yùn)行中的容器_docker
- 2022-10-11 詳解pandas?df.iloc[]的典型用法_python
- 2022-04-16 python中defaultdict字典功能特性介紹_python
- 2022-07-10 組件內(nèi)路由守衛(wèi)beforeRouteEnter和beforeRouteLeave
- 2022-11-30 React?Native:react-native-code-push報(bào)錯(cuò)的解決_React
- 2022-07-29 使用React?Router?v6?添加身份驗(yàn)證的方法_React
- 2022-10-21 使用nginx進(jìn)行負(fù)載均衡的搭建全過(guò)程_nginx
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支