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()