从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。
分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。
同样,如果要获取java数组中的元素,只需要遍历该数组。
Java代码
/** * 从json数组中得到相应java数组 * JSONArray下的toArray()方法的使用 * @param str * @return */ public static Object[] getJsonToArray(String str) { JSONArray jsonArray = JSONArray.fromObject(str); return j(); } public static void main(String[] args) { JSONArray jsonStrs = new JSONArray(); j(0, "cat"); j(1, "dog"); j(2, "bird"); j(3, "duck"); Object[] obj=getJsonToArray()); for(int i=0;i<obj.length;i++){ Sy(obj[i]); } }Java代码
/** * 将json数组转化为Long型 * @param str * @return */ public static Long[] getJsonToLongArray(String str) { JSONArray jsonArray = JSONArray.fromObject(str); Long[] arr=new Long[j()]; for(int i=0;i<j();i++){ arr[i]=j(i); Sy(arr[i]); } return arr; } /** * 将json数组转化为String型 * @param str * @return */ public static String[] getJsonToStringArray(String str) { JSONArray jsonArray = JSONArray.fromObject(str); String[] arr=new String[j()]; for(int i=0;i<j();i++){ arr[i]=j(i); Sy(arr[i]); } return arr; } /** * 将json数组转化为Double型 * @param str * @return */ public static Double[] getJsonToDoubleArray(String str) { JSONArray jsonArray = JSONArray.fromObject(str); Double[] arr=new Double[j()]; for(int i=0;i<j();i++){ arr[i]=j(i); } return arr; } /** * 将json数组转化为Date型 * @param str * @return */ public static Date[] getJsonToDateArray(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); Date[] dateArray = new Date[j()]; String dateString; Date date; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < j(); i++) { dateString = j(i); try { date=(dateString); dateArray[i] = date; } catch (Exception e) { e.printStackTrace(); } } return dateArray; } public static void main(String[] args) { JSONArray jsonLongs = new JSONArray(); j(0, "111"); j(1, "222.25"); j(2, new Long(333)); j(3, 444); Long[] log=getJsonToLongArray()); for(int i=0;i<log.length;i++){ Sy(log[i]); } JSONArray jsonStrs = new JSONArray(); j(0, "2011-01-01"); j(1, "2011-01-03"); j(2, "2011-01-04 11:11:11"); Date[] d=getJsonToDateArray()); for(int i=0;i<d.length;i++){ Sy(d[i]); } } /*结果如下: * 111 * 222 * 333 * 444 * * Sat Jan 01 00:00:00 CST 2011 * Mon Jan 03 00:00:00 CST 2011 * Tue Jan 04 00:00:00 CST 2011 */