1、JSON的简介web
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写,同时也易于机器解析和生成。 JSON采用彻底独立于语言的文本格式,可是也使用了相似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。编程
(1)JSON建构于两种结构:json
这些都是常见的数据结构,事实上大部分现代计算机语言都以某种形式支持它们,这使得一种数据格式在一样基于这些结构的编程语言之间交换成为可能。数组
(2)JSON具备如下这些形式:数据结构
1. 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每一个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。app
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。编程语言
3. 值(value)能够是双引号括起来的字符串(string)、数值(number)、true
、false
、 null
、对象(object)或者数组(array)。这些结构能够嵌套。编码
4.字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。rest
字符串(string)与C或者Java的字符串很是类似。code
5 . 数值(number)也与C或者Java的数值很是类似。除去不曾使用的八进制与十六进制格式。除去一些编码细节。
2、JSON的语法
■对象是包含在括号({ }),它们的名称-值对的分离逗号(,)以及一对中的名称和值用冒号分隔(:)。的名字在一个对象中是字符串,而值多是7个值类型中的任意一个,包括另外一个对象或数组。
■数组是包含在方括号([]),和它们的值是由一个逗号分开(,)。数组中的每一个值均可能是另外一种类型,包括另外一个数组、一个对象。当对象和数组包含其余对象或数组时,数据具备树状结构。
3、JSON的使用
JSON一般被用做序列化和反序列化数据的通用格式。在因特网上相互通讯的应用程序,这些应用程序是使用不一样的编程语言建立的,而且运行的方式很是不一样。JSON适合这个场景,由于它是一个开放的标准,很简单。读和写,它比其余表示更紧凑。rest式web服务普遍地使用JSON做为请求内部数据的格式和响应。用于表示请求或请求的内容的HTTP头。响应是JSON数据。内容类型:application / json
JSON表示一般比XML表示更紧凑,由于JSON没有结束标记。与XML不一样,JSON没有被普遍接受用于定义和验证JSON数据结构的模式。
4、生成和解析JSON数据
对于生成和解析JSON数据,有两种编程模型(相似于用于XML文档的):
■对象模型建立一个树在内存中表示JSON数据。这棵树而后能够导航、分析或修改。这种方法是最灵活的,容许进行处理,这须要访问树的完整内容。可是,它一般比流模型要慢,须要更多的内存。对象模型经过一次导航整个树来生成JSON输出。
■流模型使用一个基于事件的解析器读取JSON数据元素。解析器生成事件并中止处理。对象或数组的开始或结束,当它找到一个键,或当它找到一个值。应用程序代码能够处理或丢弃每一个元素,而后,解析器继续进行下一个事件。这种方法适合于本地处理,在其中,一个元素的处理不须要其余的信息的数据。流模型生成JSON输出到给定的流一次只调用一个元素。