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。
推薦閱讀:
- 深入淺析Java常用的格式化Json工具類
- 利用JSONObject.toJSONString()包含或排除指定的屬性
- JSON反序列化Long變Integer或Double的問題及解決
- Java使用fastjson對String、JSONObject、JSONArray相互轉換
- 淺談Java中FastJson的使用