国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java代碼實現Map和Object互轉及Map和Json互轉

2019-11-26 14:20:56
字體:
來源:轉載
供稿:網友

先給大家介紹下map和object互相轉換的代碼。

具體代碼如所示:

/** * 使用org.apache.commons.beanutils進行轉換 */ 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進行轉換 */ 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進行轉換 */ 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的互相轉換

第一段代碼

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字符串轉成map結合解析出來,并打印(這里以解析成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);

以上內容是小編給大家介紹的Java代碼實現map和Object互轉及Map和json的互轉的相關知識,希望對大家有所幫助,如果大家想了解更多資訊敬請關注武林網網站,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹿邑县| 大庆市| 宿迁市| 鹤岗市| 江门市| 共和县| 新河县| 岳普湖县| 颍上县| 德阳市| 密云县| 股票| 集贤县| 通渭县| 崇义县| 金坛市| 慈利县| 瑞安市| 沙田区| 定结县| 太和县| 沂水县| 于都县| 济宁市| 石景山区| 林甸县| 沈阳市| 新邵县| 同仁县| 兴安县| 宾阳县| 博罗县| 石台县| 尚志市| 仁寿县| 湖北省| 东海县| 平江县| 淮滨县| 赤壁市| 雅安市|