1. 程式人生 > 程式設計 >java中map與實體類的相互轉換操作

java中map與實體類的相互轉換操作

中map與實體類的相互轉換

1. 在 pom.xml 中引入依賴包

java中map與實體類的相互轉換操作

<dependency>
   <groupId>com.alibaba</groupId>
    <artifactId>faston</artifactId>
    <version>1.2.54</version>
</dependency>

2. 在控制類中引入

import com.alibaba.fastjson.JSON;

3. 型別轉換

java中map與實體類的相互轉換操作

JSON.parseObject(JSON.toJSONString(源資料),轉換後資料型別.class);
// 將 Map 轉換為 實體類
User user = JSON.parseObject(JSON.toJSONString(user01),User.class);
System.out.println(usewww.cppcns.comr);
// 將 實體類 轉換為 Map
Map map = JSON.parseObject(JSON.toJSONString(user),Map.class);
System.out.println(map);

4. 轉換成功

java中map與實體類的相互轉換操作

將map轉換為實體類的兩種方法

今天寫專案時需要把map中的值寫到對應的實體類中去,以前在遇到同樣的問題時因為需要的資料只要那麼幾個欄位,所以通過get和set的方式感覺還行不是特別麻煩,而這次需要幾乎所有欄位,一共有十幾個,如果還是才採用這用方式實在太麻煩。

查閱資料後發現了兩個不錯的方法

方法一

<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);

通過fastjson先將map轉換成json字串,然後再將json字串轉換成實體類。

方法二

<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.3</version>
</dependency>
BeanUtils.populate(Object bean,Map<String,? extends Object> map)www.cppcns.com

這個方法會遍歷map<key,value>中的key,如果brCyWVGean中有這個屬性,就把這個key對應的value值賦給bean的屬性。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。