java List Map 轉換成一個List T 工具類
List<Object[]> 轉換成一個List<T> 工具類,程式碼如下:
ListMapToBeanUtils.java檔案:
package com.map.utils; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Map; public class ListMapToBeanUtils { /** * List<Map<String, Object>>轉List<T> * @param list * @param clazz * @return * @throws Exception */ public static <T> List<T> castMapToBean(List<Map<String, Object>> list, Class<T> clazz) throws Exception { if(list == null || list.size()==0) { return null; } List<T> tList = new ArrayList<T>(); // 獲取類中宣告的所有欄位 Field[] fields = clazz.getDeclaredFields(); T t; for(Map<String, Object> map : list) { // 每次都先初始化一遍,然後再設定值 t = clazz.newInstance(); for(Field field : fields) { // 把序列化的欄位去除掉 if(!"serialVersionUID".equals(field.getName())){ // 由於Field都是私有屬性,所有需要允許修改 field.setAccessible(true); // 設定值, 型別要和vo對應好,不然會報型別轉換錯誤 field.set(t, map.get(field.getName())); } } tList.add(t); } return tList; } }
PhoneVO.java檔案:
package com.xm.bean; import java.io.Serializable; /** * vo * @author ouyangjun */ public class PhoneVO implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String plate; private Long number; private Double memory; private Double size; public String getPlate() { return plate; } public void setPlate(String plate) { this.plate = plate; } public Long getNumber() { return number; } public void setNumber(Long number) { this.number = number; } public Double getMemory() { return memory; } public void setMemory(Double memory) { this.memory = memory; } public Double getSize() { return size; } public void setSize(Double size) { this.size = size; } }
MapToBeanTest.java檔案:
package com.map.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.map.utils.ListMapToBeanUtils; import com.xm.bean.PhoneVO; public class MapToBeanTest { public static void main(String[] args) throws Exception { // 初始化 Map<String, Object> map = new HashMap<String, Object>(); map.put("plate", "hw"); map.put("number", 13655555555L); map.put("memory", 4.0); map.put("size", 6.0); Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("plate", "apple"); map1.put("number", 13677777777L); map1.put("memory", 5.5); map1.put("size", 3.8); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); list.add(map); list.add(map1); // List<Map<String, Object>>轉List<T> List<PhoneVO> phoneList = ListMapToBeanUtils.castMapToBean(list, PhoneVO.class); System.out.println("==>phoneList.size(): " + phoneList.size()); for(PhoneVO phone : phoneList) { System.out.println(phone.getPlate() + "\t" + phone.getNumber() + "\t" + phone.getMemory() + "\t" + phone.getSize()); } } }
執行結果如下:
下面提供一個用com.alibaba.fastjson實現List<Map<Object,Object>>轉List<T>的方法,程式碼如下:
實現原理:先把map轉換成json字串,再把json字串轉換成物件。
package hk.com.cre.process.utils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
/**
* @Description:
* @author ouyangjun
* @version
* @Date
*/
public class ObjectConvertUtils {
/**
* List<Map<Object,Object>>轉換List<T>
* @param map
* @param beanClass
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static <T> List<T> castMapToBean(List<Map<Object, Object>> list, Class<?> beanClass) {
List<T> returnList = new ArrayList<T>();
if (list == null || list.size()==0) {
return null;
}
String json = "";
for(Map<Object, Object> map : list) {
json = JSONObject.toJSONString(map);
// 新增到集合中
returnList.add((T)JSONObject.parseObject(json, beanClass));
}
// 返回
return returnList;
}
}
本文說明:該文章屬於原創,如需轉載,請標明文章轉載來源
相關推薦
java List Map 轉換成一個List T 工具類
List<Object[]> 轉換成一個List<T> 工具類,程式碼如下: ListMapToBeanUtils.java檔案: package com.map.utils; import java.lang.reflect.Field; i
將request中的參數轉換成bean的萬能工具類
object 否則 .get ring util bean 讀取 屬性 表單提交 package cn.itcast.utils; import java.util.Map; import javax.servlet.http.HttpServletRequest;
實體物件轉成Map/Map轉成實體物件的工具類
package com.yanshu.test; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.*; /** * 實體物件轉成Map * @auth
String 轉換成 int, long, double工具類
public class NumberUtil { private static String[] hanArr = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"}; private static Str
使用fastjson將list、map轉換成json,出現$ref
這是轉換時出現的問題情況( map >> json ) 引用是通過"$ref"來表示的 引用 描述 "$ref":".." 上一級 "$ref":"@" 當前物件,也就是自引用
java JSON學習—List集合轉換成JSON物件
1. 簡單的手動放置 鍵值對 到JSONObject,然後在put到JSONArray物件裡 List<Article> al = articleMng.find(f); System.out.println(al.size())
java 多執行緒處理一個list的集合
2016年08月03日 09:16:20 package A; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import j
如何將一個類的屬性轉換成一個MAP
需求:如何將一個類轉換成一個Map,同時針對類中的屬性有要求,Date型別 需要變成String,YYYY -MM-DD HH:mm:ss 物件需要變成json。如何寫一個通用的工具 下面是具體的實現方式 public interface ValueMapper { Strin
java 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成一個排序的雙向連結串列。要求不能建立任何新的結點,只能調整樹中結點指標的指向。
題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成一個排序的雙向連結串列。要求不能建立任何新的結點,只能調整樹中結點指標的指向。 比如將二元查詢樹
list集合轉換成datatable
/// 將list集合轉換成datatable /// </summary> /// <param name="list"></param> /// <returns></returns>
Java程式設計題:將一個十六進位制的字串轉換成一個十進位制的整數
思路: 1.將字串轉換成一個一個的字元2.將字元轉換成十六進位制的數字 3.計算出結果 package test; public class Test { public static void main(String[] args) { String st
hibernate使用本地sql語句查詢,解決List Object轉換成List Entity
本人第一次寫技術文件的部落格,可能有什麼語言語法問題,還有技術類的名詞誤解請多包涵,並予以指正方便我和大家更好的學習。廢話不多說,開始進行現在的任務。 我們在使用hibernate框架時,對於程式設計師使用hibernate模板HibernateTemplate進行事務處理
list集合轉換成json資料,ajax請求返回json資料,再通過迴圈顯示出來
之前在網上查了很多關於迴圈顯示ajax返回值的方法,很多都不對的,顯示不了我要的結果。後來自己鼓搗出來了,發出來分享一下自己的成果。因為ajax不能返回集合的,需要把集合list轉換成json返回,再用迴圈的方式,顯示出結果。 操作層 //編碼方式request.set
JS中定義List然後轉換成json交給後臺處理
=================定義List方法====================== function List(){ this.value = []; /*新增*/ this.add = function(obj){
兩個相同欄位list整合成一個list
List<Object> list_a = ajblService.selectGrpm(paraMap); List<Object> list_b = ajblService.exceptGrpm(paraMap
JavaBean,List,Map轉成json格式
普通JavaBean(以User為例)轉成json格式 1.轉成JSONArray型別 User user = new User(); user.setUsername("cxl"); user.setPassword("1234"); JSONArray json = JSONArray.from
將List實體轉換成DataTable
public static DataTable ToDataTable<T>(IList<T> data) { PropertyDe
在python中如何將兩個list合併成一個list,不用for語句
除了直接相加(生成新的list),還有兩種方法(修改其中一個list): 用list的extend方法,L1.extend(L2),該方法將引數L2的全部元素新增到L1的尾部,例如: 1 2 3 4 5 >>> L1 = [1, 2, 3, 4, 5] >
將ResultSet結果集通過反射轉換成物件LIST集合
說明:Lz新手,通過這個練習反射。(mysql資料庫) 一,簡單的建立一個數據庫,並給上資料。 二、 1.建立一個Emp.java 。 2.建立和 資料庫中各列名一樣的屬性,且為private型別。 3.有
Java對象轉換成Map
vat illegal throw sse lar 復制代碼 set 對象 imp 需求總是千奇百怪,對象轉成map,看似沒必要,但就是有這個需求,所以記錄下來 首先是Bean 復制代碼package tools; import lombok.Data; /** 車輛實