tinguo002

           

          Map、JavaBean、JSON的相互轉換

          package com.suning.crawler.util; 

          import java.lang.reflect.Method; 
          import java.text.ParseException; 
          import java.util.HashMap; 
          import java.util.Iterator; 
          import java.util.Map; 
          import org.json.JSONObject; 

          /** 
           *轉換器 
          *1:將JavaBean 轉換成Map、JSONObject 
           *2:將JSONObject 轉換成Map 
           * 
           * 
          @author xxx 
           
          */
           
          public class BeanConverter 

              
          /** 
               * 將javaBean轉換成Map 
               * 
               * 
          @param javaBean javaBean 
               * 
          @return Map對象 
               
          */
           
              
          public static Map<String, String> toMap(Object javaBean) 
              

                  Map
          <String, String> result = new HashMap<String, String>(); 
                  Method[] methods 
          = javaBean.getClass().getDeclaredMethods(); 

                  
          for (Method method : methods) 
                  

                      
          try 
                      

                          
          if (method.getName().startsWith("get")) 
                          

                              String field 
          = method.getName(); 
                              field 
          = field.substring(field.indexOf("get"+ 3); 
                              field 
          = field.toLowerCase().charAt(0+ field.substring(1); 

                              Object value 
          = method.invoke(javaBean, (Object[])null); 
                              result.put(field, 
          null == value ? "" : value.toString()); 
                          }
           
                      }
           
                      
          catch (Exception e) 
                      

                      }
           
                  }
           

                  
          return result; 
              }
           

              
          /** 
               * 將json對象轉換成Map 
               * 
               * 
          @param jsonObject json對象 
               * 
          @return Map對象 
               
          */
           
              @SuppressWarnings(
          "unchecked"
              
          public static Map<String, String> toMap(JSONObject jsonObject) 
              

                  Map
          <String, String> result = new HashMap<String, String>(); 
                  Iterator
          <String> iterator = jsonObject.keys(); 
                  String key 
          = null
                  String value 
          = null
                  
          while (iterator.hasNext()) 
                  

                      key 
          = iterator.next(); 
                      value 
          = jsonObject.getString(key); 
                      result.put(key, value); 
                  }
           
                  
          return result; 
              }
           

              
          /** 
               * 將javaBean轉換成JSONObject 
               * 
               * 
          @param bean javaBean 
               * 
          @return json對象 
               
          */
           
              
          public static JSONObject toJSON(Object bean) 
              

                  
          return new JSONObject(toMap(bean)); 
              }
           

              
          /** 
               * 將map轉換成Javabean 
               * 
               * 
          @param javabean javaBean 
               * 
          @param data map數據 
               
          */
           
              
          public static Object toJavaBean(Object javabean, Map<String, String> data) 
              

                  Method[] methods 
          = javabean.getClass().getDeclaredMethods(); 
                  
          for (Method method : methods) 
                  

                      
          try 
                      

                          
          if (method.getName().startsWith("set")) 
                          

                              String field 
          = method.getName(); 
                              field 
          = field.substring(field.indexOf("set"+ 3); 
                              field 
          = field.toLowerCase().charAt(0+ field.substring(1); 
                              method.invoke(javabean, 
          new Object[] 
                              

                                  data.get(field) 
                              }
          ); 
                          }
           
                      }
           
                      
          catch (Exception e) 
                      

                      }
           
                  }
           

                  
          return javabean; 
              }
           

              
          /** 
               * 將javaBean轉換成JSONObject 
               * 
               * 
          @param bean javaBean 
               * 
          @return json對象 
               * 
          @throws ParseException json解析異常 
               
          */
           
              
          public static void toJavaBean(Object javabean, String data) throws ParseException 
              

                  JSONObject jsonObject 
          = new JSONObject(data); 
                  Map
          <String, String> datas = toMap(jsonObject); 
                  toJavaBean(javabean, datas); 
              }
           

          詳細出處參考:http://spacecity.iteye.com/blog/1402101

          歡迎大家訪問我的個人網站 萌萌的IT人

          posted on 2014-04-12 17:24 一堣而安 閱讀(3087) 評論(0)  編輯  收藏 所屬分類: java

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武胜县| 吕梁市| 奈曼旗| 资兴市| 满洲里市| 宜良县| 金湖县| 夹江县| 沧州市| 玉环县| 古田县| 潮安县| 永嘉县| 珲春市| 射阳县| 句容市| 盘锦市| 和平区| 宿迁市| 华亭县| 基隆市| 宣汉县| 安达市| 高州市| 常州市| 玛曲县| 昌邑市| 页游| 武义县| 大理市| 体育| 桂林市| 眉山市| 呼图壁县| 那曲县| 阿勒泰市| 法库县| 宜黄县| 铅山县| 杭州市| 赣榆县|