JSONArray的应用

来源:互联网 发布:塞尼斯托 知乎 编辑:程序博客网 时间:2024/05/17 20:31

    从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 
  99.  */ 
0 0
原创粉丝点击