JSONArray的应用【转载】

从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组。 

Java代码  收藏代码
  1. /** 
  2.  * 从json数组中得到相应java数组 
  3.  * JSONArray下的toArray()方法的使用 
  4.  * @param str 
  5.  * @return 
  6.  */  
  7.  public static Object[] getJsonToArray(String str) {  
  8.      JSONArray jsonArray = JSONArray.fromObject(str);  
  9.      return jsonArray.toArray();  
  10.  }  
  11.   
  12.  public static void main(String[] args) {         
  13.       JSONArray jsonStrs = new JSONArray();  
  14.       jsonStrs.add(0"cat");  
  15.       jsonStrs.add(1"dog");  
  16.       jsonStrs.add(2"bird");  
  17.       jsonStrs.add(3"duck");  
  18.         
  19.       Object[] obj=getJsonToArray(jsonStrs.toString());  
  20.       for(int i=0;i<obj.length;i++){  
  21.           System.out.println(obj[i]);  
  22.       }  
  23.   }  


从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 

posted on 2013-03-20 17:18  liyingming  阅读(165)  评论(0编辑  收藏  举报

导航