JSON 数据解析笔记

时间:2014-04-30 22:15:38   收藏:0   阅读:325

网上的酱油贴太多,自己调试了下,总结下JSON字符串的解析。

比如以下这个JSON数据字符串:


String jsonString="[{\"A1\":1,\"A2\":2,\"AList\":[{\"AA1\":\"aa1\",\"AA2\":\"aa2\"},{\"AB1\":\"ab1\",\"AB2\":\"ab2\"}]}]";


其JSON数据结构为:

[
 {
   "A1":1,
   "A2":2,
   "AList":
          [
             {
			    "AA1":"aa1",
				"AA2":"aa2"
			 },
			 {
			    "AB1":"ab1",
				"AB2":"ab2"
			 }
		  ]
}]


我总结了下,这么理解,JSON就在简单不过了。

还有2个规则 :

1)属性的值可以是一个数组,也可以是一个对象,但是不能是多个对象,(多个对象一定要建立数组)

2)一个JSON数据结构可以没有中括号,但是一般不可以没有{},因为对象是存放属性的最小单位。


另外解析的时候需要注意:

1)JSONArray 只可以用 元素下标来访问对象,并且其初始化用的的字符串必须要用“[”开头,“]”结尾。

比如:

String jsonString="[{\"A1\":1,\"A2\":2,\"AList\":[{\"AA1\":\"aa1\",\"AA2\":\"aa2\"},{\"AB1\":\"ab1\",\"AB2\":\"ab2\"}]}]";
		       JSONArray jsonGroupListByHeadLetter=new JSONArray(jsonString); 
			   JSONObject arrayGroupList= jsonGroupListByHeadLetter.getJSONObject(0);


2)JSONObject 只可以用属性名来访问,并且其初始化用的字符串必须要用"{"开头 ,“}” 结尾。

比如:

String jsonString="{\"A1\":1,\"A2\":2,\"AList\":[{\"AA1\":\"aa1\",\"AA2\":\"aa2\"},{\"AB1\":\"ab1\",\"AB2\":\"ab2\"}]}";
		       JSONObject obj= new JSONObject(jsonString);
		       obj.getInt("A1");

3)如果我们要获得某个对象属性的值,必须要知道这个值是什么类型的(说明JSON没有多态性),比如你要取一个整型的值,那么必须要用

aJSONObject.getInt("属性名");
同理,如果你要访问的属性的值是一另一个JSON数组,那么需要这么访问:

 JSONObject arrayGroupList= jsonGroupListByHeadLetter.getJSONObject(0);
			   JSONArray temp = arrayGroupList.getJSONArray("AList");
			  






评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!