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

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

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

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

2. 在控制類中引入

import com.alibaba.fastjson.JSON;

3. 類型轉換

JSON.parseObject(JSON.toJSONString(源數據), 轉換後數據類型.class);
// 將 Map 轉換為 實體類
User user = JSON.parseObject(JSON.toJSONString(user01), User.class);
System.out.println(user);
// 將 實體類 轉換為 Map
Map map = JSON.parseObject(JSON.toJSONString(user), Map.class);
System.out.println(map);

4. 轉換成功

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

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

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: