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的屬性。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持我們。
原文鏈接:https://www.cnblogs.com/zhainan-blog/p/12009523.html