public static Map<String, Object> javabeanToMap(Object bean) {
Map<String, Object> result = new HashMap<String, Object>();
if (bean == null) {
return result;
}
Field[] fields = bean.getClass().getDeclaredFields();
if (fields == null || fields.length == 0) {
return result;
}
for (Field field : fields) {
// 重置屬性可見(而且一般屬性都是私有的),否則操作無效
boolean accessible = field.isAccessible();
if (!accessible) {
field.setAccessible(true);
}
String key = field.getName();
try {
// 獲取子類屬性
Object value = field.get(bean);
if (value instanceof java.util.List) {
List list = (List) value;
List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
Object obj;
for (int i = 0; i < list.size(); i++) {
obj = list.get(i);
// list里是map或String,不會存在list里直接是list的并扇,
Field[] fieldChilds = obj.getClass().getDeclaredFields();
Map<String, Object> resultChild = new HashMap<String, Object>();
for (Field field2 : fieldChilds) {
// 重置屬性可見(而且一般屬性都是私有的),否則操作無效
boolean accessible2 = field2.isAccessible();
if (!accessible2) {
field2.setAccessible(true);
}
try {
// 獲取屬性名稱及值存入Map
String key1 = field2.getName();
Object ooo = field2.get(obj);
System.out.println("==key " + key1 + ";;;;;" + ooo);
resultChild.put(key1, field2.get(obj));
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
// 還原屬性標識
field.setAccessible(accessible2);
}
mapList.add(resultChild);
}
result.put(key, mapList);
} else {
result.put(key, field.get(bean));
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
// 還原屬性標識
field.setAccessible(accessible);
}
// 獲取父類屬性
fields = bean.getClass().getSuperclass().getDeclaredFields();
if (fields == null || fields.length == 0) {
return result;
}
for (Field field : fields) {
// 重置屬性可見(而且一般屬性都是私有的)驰贷,否則操作無效
boolean accessible = field.isAccessible();
if (!accessible) {
field.setAccessible(true);
}
// 獲取屬性名稱及值存入Map
String key = field.getName();
try {
result.put(key, field.get(bean));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
// 還原屬性標識
field.setAccessible(accessible);
}
return result;
}
java bean中包含list<object>轉(zhuǎn)map方法
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來子房,“玉大人形用,你說我怎么就攤上這事≈ず迹” “怎么了田度?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長解愤。 經(jīng)常有香客問我镇饺,道長,這世上最難降的妖魔是什么送讲? 我笑而不...
- 正文 為了忘掉前任奸笤,我火速辦了婚禮,結(jié)果婚禮上哼鬓,老公的妹妹穿的比我還像新娘监右。我一直安慰自己,他們只是感情好异希,可當我...
- 文/花漫 我一把揭開白布健盒。 她就那樣靜靜地躺著,像睡著了一般称簿。 火紅的嫁衣襯著肌膚如雪扣癣。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耕赘!你這毒婦竟也來了骄蝇?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布江兢,位于F島的核電站昨忆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏杉允。R本人自食惡果不足惜邑贴,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叔磷。 院中可真熱鬧痢缎,春花似錦、人聲如沸世澜。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽寥裂。三九已至嵌洼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間封恰,已是汗流浹背麻养。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- org.springframework.beans.factory.UnsatisfiedDependencyEx...
- 前言:java的集合框架細節(jié)闡述我們這里就不贅述了速那,可參考Java - 集合框架完全解析俐银,這里只總結(jié)java集合的...