日期:2014-05-16  浏览次数:20468 次

Android json解析有关内容学习笔记
       毋庸置疑,Json是当下最主流最受欢迎的数据交换格式,得益于json的简单易用,一直没有系统的学习有关json的知识,总是一知半解,所以想整理一下json相关的学习内容。文档中指出,json是一种轻量级的具有良好的可读性和便于快速编写的的交换格式,获得当今大多数语言的支持,可在不同平台上进行数据交换,比较理想,正因为其种种优良特性使得其很快取代了xml。

       所有的json相关资料习惯性的都会列出json和xml的对比,那好我也copy过来

优点:

      比xml格式简单;
      json是更好的数据交换格式;xml是更好的文档交换格式;
      json更易于机器阅读,使用简单的客户端库或者自身支持(javascript);
      json可被浏览器客户端支持;
      可支持各种通用的数据结构,记录、列表、树;
      21种语言支持可解析和生成json格式
缺点:

      没有xml中类似CDATA的特性,不适合传递声音和图片等二进制数据;
      json不具备显示能力,和xml相比;
      json不可扩展,和xml相比。

----------------------------------------------------------------- 

       前段时间看阮一峰的博客,一篇写到有关数据类型和json的内容,觉得说的非常好,把一些概念性的东西通俗易懂的讲了出来,很容易理解,内容如下:

    从结构上看,所有的数据最终都可以分解成三种类型:

       第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。

       第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海"。

       第三种类型是映射(mapping),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比    如"首都:北京"。

        数据构成的最小单位原来如此简单!难怪在编程语言中,只要有了数组(array)和对象(object)就能够储存一切数据了。

   Json的规格非常简单,只用一个页面几百个字就能说清楚,而且这个规格永远不必升级,因为该规定的都规定了。

  1) 并列的数据之间用逗号(",")分隔。

  2) 映射用冒号(":")表示。

  3) 并列数据的集合(数组)用方括号("[]")表示。

  4) 映射的集合(对象)用大括号("{}")表示。

      上面四条规则,就是Json格式的所有内容。

 

-----------------------------------------------------------------------------------------      

       看过一些介绍android json参考资料后,打算自己动手尝试去写写解析json的例子,在代码中遇到的问题才会印象更深刻,将两个demo集合在一起,两个解析的方式都是相同的,只是构建json的时候不同而已:一种是在tomcat上放置一个jsp文件,里面用json的格式描述的一些列字符串,然后去解析还原出来;另一种是在代码中构建json格式之后再进行解析,下面PO的是主要一些代码:

放在tomcat上的jsp文件json.jsp,按照json的格式描述的一段字符串:

<%@ page contentType="text/html;charset=GBK"%>
{"Race" : "侏儒", "Name" : "辛德瑞拉嘟嘟", "Profession" : "法师",
 "Server" :{"Server_region":"二区","Server_name":"阿古斯"}, 
 "Talent" : ["奥术","火焰"], "Achievement_Point" : 12090, 
 "P_Skill" : ["工程学","附魔"], "L_Skill" : ["急救","烹饪","考古学","钓鱼"],
  &q