如何將json數據轉換爲常見的數據格式

轉自:http://linglan-8805.iteye.com/blog/1290113

從json數組中得到java數組,可以對該數組進行轉化,如將JSONArray轉化爲String型、Long型、Double型、Integer型、Date型等等。 

分別採用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。 
同樣,如果要獲取java數組中的元素,只需要遍歷該數組。 
Java代碼  收藏代碼
  1.  /** 
  2.   * 將json數組轉化爲Long型 
  3.   * @param str 
  4.   * @return 
  5.   */  
  6.  public static Long[] getJsonToLongArray(String str) {  
  7.       JSONArray jsonArray = JSONArray.fromObject(str);  
  8.       Long[] arr=new Long[jsonArray.size()];  
  9.       for(int i=0;i<jsonArray.size();i++){  
  10.           arr[i]=jsonArray.getLong(i);  
  11.           System.out.println(arr[i]);  
  12.       }  
  13.       return arr;  
  14. }  
  15.  /** 
  16.   * 將json數組轉化爲String型 
  17.   * @param str 
  18.   * @return 
  19.   */  
  20.  public static String[] getJsonToStringArray(String str) {  
  21.       JSONArray jsonArray = JSONArray.fromObject(str);  
  22.       String[] arr=new String[jsonArray.size()];  
  23.       for(int i=0;i<jsonArray.size();i++){  
  24.           arr[i]=jsonArray.getString(i);  
  25.           System.out.println(arr[i]);  
  26.       }  
  27.       return arr;  
  28. }  
  29.  /** 
  30.   * 將json數組轉化爲Double型 
  31.   * @param str 
  32.   * @return 
  33.   */  
  34.  public static Double[] getJsonToDoubleArray(String str) {  
  35.       JSONArray jsonArray = JSONArray.fromObject(str);  
  36.       Double[] arr=new Double[jsonArray.size()];  
  37.       for(int i=0;i<jsonArray.size();i++){  
  38.           arr[i]=jsonArray.getDouble(i);  
  39.       }  
  40.       return arr;  
  41. }  
  42.  /** 
  43.   * 將json數組轉化爲Date型 
  44.   * @param str 
  45.   * @return 
  46.   */  
  47.  public static Date[] getJsonToDateArray(String jsonString) {  
  48.   
  49.       JSONArray jsonArray = JSONArray.fromObject(jsonString);  
  50.       Date[] dateArray = new Date[jsonArray.size()];  
  51.       String dateString;  
  52.       Date date;  
  53.       SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  54.       for (int i = 0; i < jsonArray.size(); i++) {  
  55.           dateString = jsonArray.getString(i);  
  56.           try {  
  57.               date=sdf.parse(dateString);  
  58.               dateArray[i] = date;  
  59.           } catch (Exception e) {  
  60.               e.printStackTrace();  
  61.           }  
  62.       }  
  63.       return dateArray;  
  64. }  
  65.   
  66.   
  67. public static void main(String[] args) {  
  68.           
  69.        JSONArray jsonLongs = new JSONArray();  
  70.        jsonLongs.add(0"111");  
  71.        jsonLongs.add(1"222.25");  
  72.        jsonLongs.add(2new Long(333));  
  73.        jsonLongs.add(3444);  
  74.          
  75.        Long[] log=getJsonToLongArray(jsonLongs.toString());  
  76.        for(int i=0;i<log.length;i++){  
  77.         System.out.println(log[i]);  
  78.        }  
  79.          
  80.        JSONArray jsonStrs = new JSONArray();  
  81.        jsonStrs.add(0"2011-01-01");  
  82.        jsonStrs.add(1"2011-01-03");  
  83.        jsonStrs.add(2"2011-01-04 11:11:11");  
  84.          
  85.        Date[] d=getJsonToDateArray(jsonStrs.toString());          
  86.        for(int i=0;i<d.length;i++){  
  87.         System.out.println(d[i]);  
  88.        }  
  89. }  
  90.  /*結果如下: 
  91.  * 111 
  92.  * 222 
  93.  * 333 
  94.  * 444 
  95.  *  
  96.  * Sat Jan 01 00:00:00 CST 2011 
  97.  * Mon Jan 03 00:00:00 CST 2011 
  98.  * Tue Jan 04 00:00:00 CST 2011 
  99.  */  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章