java中map與實(shí)體類(lèi)的相互轉(zhuǎn)換操作
java中map與實(shí)體類(lèi)的相互轉(zhuǎn)換
1. 在 pom.xml 中引入依賴包

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
2. 在控制類(lèi)中引入
import com.alibaba.fastjson.JSON;
3. 類(lèi)型轉(zhuǎn)換

JSON.parseObject(JSON.toJSONString(源數(shù)據(jù)), 轉(zhuǎn)換后數(shù)據(jù)類(lèi)型.class);
// 將 Map 轉(zhuǎn)換為 實(shí)體類(lèi) User user = JSON.parseObject(JSON.toJSONString(user01), User.class); System.out.println(user); // 將 實(shí)體類(lèi) 轉(zhuǎn)換為 Map Map map = JSON.parseObject(JSON.toJSONString(user), Map.class); System.out.println(map);
4. 轉(zhuǎn)換成功

將map轉(zhuǎn)換為實(shí)體類(lèi)的兩種方法
今天寫(xiě)項(xiàng)目時(shí)需要把map中的值寫(xiě)到對(duì)應(yīng)的實(shí)體類(lèi)中去,以前在遇到同樣的問(wèn)題時(shí)因?yàn)樾枰臄?shù)據(jù)只要那么幾個(gè)字段,所以通過(guò)get和set的方式感覺(jué)還行不是特別麻煩,而這次需要幾乎所有字段,一共有十幾個(gè),如果還是才采用這用方式實(shí)在太麻煩。
查閱資料后發(fā)現(xiàn)了兩個(gè)不錯(cuò)的方法
方法一
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.30</version>
</dependency>
JSON.parseObject(JSON.toJSONString(Map<String, ? extends Object>), Class<T> bean);
通過(guò)fastjson先將map轉(zhuǎn)換成json字符串,然后再將json字符串轉(zhuǎn)換成實(shí)體類(lèi)。
方法二
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
BeanUtils.populate(Object bean, Map<String, ? extends Object> map)
這個(gè)方法會(huì)遍歷map<key, value>中的key,如果bean中有這個(gè)屬性,就把這個(gè)key對(duì)應(yīng)的value值賦給bean的屬性。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot框架集成token實(shí)現(xiàn)登錄校驗(yàn)功能
這篇文章主要為大家詳細(xì)介紹了SpringBoot框架集成token實(shí)現(xiàn)登錄校驗(yàn)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Java實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建類(lèi)操作示例
這篇文章主要介紹了Java實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建類(lèi)操作,結(jié)合完整示例形式分析了Java動(dòng)態(tài)創(chuàng)建類(lèi)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問(wèn)題及解決
這篇文章主要介紹了springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
詳解SpringBoot?調(diào)用外部接口的三種方式
SpringBoot不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過(guò)簡(jiǎn)化配置來(lái)進(jìn)一步簡(jiǎn)化了Spring應(yīng)用的整個(gè)搭建和開(kāi)發(fā)過(guò)程,這篇文章主要介紹了SpringBoot?調(diào)用外部接口的三種方式,需要的朋友可以參考下2023-04-04

