json学习之三:JSONArray的应用

从json数组中得到相应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数组中的元素,只需要遍历该数组。

 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(2, new Long(333));

73         jsonLongs.add(3, 444);

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      */

 

你可能感兴趣的:(JsonArray)