http://blog.csdn.net/xiazdong/article/details/7059573
上面是一個博主寫的,非常不錯。下面再做一些總結:
1.兩者可以添加的數據類型value是相同的。數據類型value 如下:
圖1
區別是數組和map的區別,說白了,就是JSONObject中的元素只能通過key來獲得,JSONArray中的元素只能通過數組下標來獲得。
2.JSONArray和普通數組的區別:
普通數組裏元素的數據類型必須相同,比如int[]的元素必須是int,而JSONArray的數組元素只要是數據類型value即可,不需要具體的類型相同。(也可以理解爲JSONArray的數組元素的類型就是value)
最好JSONArray裏面放相同數據類型的元素,這樣操作不容易出錯,比較方便
3.其中JSONOject的value不能爲空但是JSONArray的value的值可以爲空。圖1數據類型中,object指java中的對象都可以用JSONObject來表示(即將java對象的屬性表示爲JSONObject的鍵值對);array值的是java中的數組,list等可以用JSONArray來表示。
4.關於GSON解析
(1)下面是解析JSONObject
gson.fromJson(jsonString, User.class);
(2)下面是解析JSONArray,JSONArray的每個元素是一個JSONObject
gson.fromJson(jsonString,new TypeToken<List<User>>(){}.getType()