最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java代碼實(shí)現(xiàn)Map和Object互轉(zhuǎn)及Map和Json互轉(zhuǎn)

 更新時(shí)間:2016年05月13日 15:14:03   作者:西門(mén)呀在吹雪  
這篇文章主要介紹了Java代碼實(shí)現(xiàn)map和Object互轉(zhuǎn)及Map和json互轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下

先給大家介紹下map和object互相轉(zhuǎn)換的代碼。

具體代碼如所示:

/** 
* 使用org.apache.commons.beanutils進(jìn)行轉(zhuǎn)換 
*/ 
class A { 
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { 
if (map == null) 
return null; 
Object obj = beanClass.newInstance(); 
org.apache.commons.beanutils.BeanUtils.populate(obj, map); 
return obj; 
} 
public static Map<?, ?> objectToMap(Object obj) { 
if(obj == null) 
return null; 
return new org.apache.commons.beanutils.BeanMap(obj); 
} 
} 
/** 
* 使用Introspector進(jìn)行轉(zhuǎn)換 
*/ 
class B { 
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { 
if (map == null) 
return null; 
Object obj = beanClass.newInstance(); 
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); 
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); 
for (PropertyDescriptor property : propertyDescriptors) { 
Method setter = property.getWriteMethod(); 
if (setter != null) { 
setter.invoke(obj, map.get(property.getName())); 
} 
} 
return obj; 
} 
public static Map<String, Object> objectToMap(Object obj) throws Exception { 
if(obj == null) 
return null; 
Map<String, Object> map = new HashMap<String, Object>(); 
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); 
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); 
for (PropertyDescriptor property : propertyDescriptors) { 
String key = property.getName(); 
if (key.compareToIgnoreCase("class") == 0) { 
continue; 
} 
Method getter = property.getReadMethod(); 
Object value = getter!=null ? getter.invoke(obj) : null; 
map.put(key, value); 
} 
return map; 
} 
} 
/** 
* 使用reflect進(jìn)行轉(zhuǎn)換 
*/ 
class C { 
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { 
if (map == null) 
return null; 
Object obj = beanClass.newInstance(); 
Field[] fields = obj.getClass().getDeclaredFields(); 
for (Field field : fields) { 
int mod = field.getModifiers(); 
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){ 
continue; 
} 
field.setAccessible(true); 
field.set(obj, map.get(field.getName())); 
} 
return obj; 
} 
public static Map<String, Object> objectToMap(Object obj) throws Exception { 
if(obj == null){ 
return null; 
} 
Map<String, Object> map = new HashMap<String, Object>(); 
Field[] declaredFields = obj.getClass().getDeclaredFields(); 
for (Field field : declaredFields) { 
field.setAccessible(true); 
map.put(field.getName(), field.get(obj)); 
} 
return map; 
} 
<p>} </p><p> 
</p><p>from:http://www.open-open.com/code/view/1423280939826</p> 

下面給大家介紹Map和json的互相轉(zhuǎn)換

第一段代碼

Map<String,Object> map = new HashMap<String,Object>();
map.put("method","json");
map.put("param",null);
map.put("time","2015-01-23 10:54:55");
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(map);

第二段代碼

public static void readJson2Map(String json) {
ObjectMapper objectMapper = new ObjectMapper();
try {
//將json字符串轉(zhuǎn)成map結(jié)合解析出來(lái),并打印(這里以解析成map為例)
Map<String, Map<String, Object>> maps = objectMapper.readValue(
json, Map.class);
System.out.println(maps.size());
Set<String> key = maps.keySet();
Iterator<String> iter = key.iterator();
while (iter.hasNext()) {
String field = iter.next();
System.out.println(field + ":" + maps.get(field));
}
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
readJson2Map(json);

以上內(nèi)容是小編給大家介紹的Java代碼實(shí)現(xiàn)map和Object互轉(zhuǎn)及Map和json的互轉(zhuǎn)的相關(guān)知識(shí),希望對(duì)大家有所幫助,如果大家想了解更多資訊敬請(qǐng)關(guān)注腳本之家網(wǎng)站,謝謝!

相關(guān)文章

  • java實(shí)習(xí)--每天打卡十道面試題!

    java實(shí)習(xí)--每天打卡十道面試題!

    臨近秋招,備戰(zhàn)暑期實(shí)習(xí),祝大家每天進(jìn)步億點(diǎn)點(diǎn)!本篇文章準(zhǔn)備了十道java的常用面試題,希望能夠給大家提供幫助,最后祝大家面試成功,進(jìn)入自己心儀的大廠
    2021-06-06
  • Java如何獲取Object中Value

    Java如何獲取Object中Value

    在Java中,獲取Object中的值需依賴于對(duì)象的類(lèi)型和屬性,常用方法包括使用反射、getter方法、接口或抽象類(lèi)、Map等數(shù)據(jù)結(jié)構(gòu),本文給大家介紹Java如何獲取Object中Value,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Java實(shí)現(xiàn)兩人五子棋游戲(六) 行棋方變換

    Java實(shí)現(xiàn)兩人五子棋游戲(六) 行棋方變換

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的兩人五子棋游戲,行棋方變換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用springboot自動(dòng)配置源碼解讀

    使用springboot自動(dòng)配置源碼解讀

    自動(dòng)裝配是Spring Boot的一個(gè)核心特性,允許程序員在開(kāi)發(fā)中更加專(zhuān)注于業(yè)務(wù)邏輯,而不是花費(fèi)大量的時(shí)間去配置和管理第三方組件,當(dāng)開(kāi)發(fā)者在pom.xml文件中添加了某個(gè)依賴后,Spring Boot通過(guò)自動(dòng)配置的方式,將這些第三方組件的實(shí)例自動(dòng)注入到IOC容器中
    2024-11-11
  • Java語(yǔ)法糖之個(gè)數(shù)可變的形參的實(shí)現(xiàn)

    Java語(yǔ)法糖之個(gè)數(shù)可變的形參的實(shí)現(xiàn)

    這篇文章主要介紹了Java語(yǔ)法糖之個(gè)數(shù)可變的形參的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java 多態(tài)性詳解及簡(jiǎn)單實(shí)例

    java 多態(tài)性詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了java 多態(tài)性詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • java如何根據(jù)HttpServletRequest獲取IP地址

    java如何根據(jù)HttpServletRequest獲取IP地址

    文章介紹了幾種代理服務(wù)器轉(zhuǎn)發(fā)服務(wù)請(qǐng)求頭的方法,這些請(qǐng)求頭可能包含真實(shí)IP地址,但并不是所有的代理都會(huì)包括這些請(qǐng)求頭,而且這些IP地址可能被偽造
    2025-03-03
  • idea使用帶provide修飾依賴導(dǎo)致ClassNotFound

    idea使用帶provide修飾依賴導(dǎo)致ClassNotFound

    程序打包到Linux上運(yùn)行時(shí),若Linux上也有這些依賴,為了在Linux上運(yùn)行時(shí)避免依賴沖突,可以使用provide修飾,本文主要介紹了idea使用帶provide修飾依賴導(dǎo)致ClassNotFound,下面就來(lái)介紹一下解決方法,感興趣的可以了解一下
    2024-01-01
  • 詳解Spring MVC CORS 跨域

    詳解Spring MVC CORS 跨域

    本篇文章主要介紹了詳解Spring MVC CORS 跨域 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Java的Volatile實(shí)例用法及講解

    Java的Volatile實(shí)例用法及講解

    在本篇文章里小編給大家整理了關(guān)于Java的Volatile知識(shí)點(diǎn)相關(guān)內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。
    2019-09-09

最新評(píng)論

绥滨县| 嘉峪关市| 苗栗市| 石狮市| 金川县| 玛纳斯县| 朝阳县| 罗田县| 新兴县| 郧西县| 章丘市| 文山县| 仙桃市| 宜兴市| 罗城| 瑞丽市| 中山市| 龙游县| 黎城县| 琼海市| 平度市| 西吉县| 崇阳县| 孝义市| 乐业县| 普陀区| 白玉县| 通榆县| 安塞县| 茂名市| 乌海市| 岳阳县| 乌审旗| 寻乌县| 台东市| 辉县市| 德江县| 大城县| 长乐市| 岳普湖县| 翁牛特旗|