做为一名开发人员,咱们时常跟JSON打交道,但对于JSON却有这很多的疑惑,但日常也就是停留在使用的角度上。今天咱们就来走进JSON。 咱们首先引入两个问题,这两个问题将帮助咱们理解JSON。html
第一个问题的答案就隐藏在JSON的名字当中,JSON: JavaScript Object Notation. 咱们重点关注Notation这个词,前两个词咱们很熟悉。web
>Notation: 符号,记号,谱号。 咱们是否能够将JSON理解为JavaScript对象的符号形式呢? 带着这个疑问,我查看了[JSON](http://www.json.org/json-zh.html)的官网:  请注意标红的部分,这是关键。咱们在强调一遍,一种轻量级的数据交换格式。
根据以上的求索,咱们能够对JSON作出如下论断:json
从JSON的官网能够看到JSON有两种结构:后端
"名称/值"对的集合,好怪的说法啊,JSON脱胎于JavaScript,简单的说,JSON就是JavaScript的对象和数组。
那么JSON是JavaScript的对象吗?并非,说JSON是JavaScript的对象和数组只是为了方便理解JSON而已,JavaScript Object Notation, JavaScript Object Notation,咱们强调两遍,Notaiton在牛津字典的解释是 a system of signs or symbols used to represent information---即一种表明某种信息的符号。叫 JavaScript Object Notation的缘由也许是JSON的做者道格拉斯同志在设计JSON时参考了JavaScript Object的对象语法而已。
JSON的形式:数组
接下来,咱们从数据交换形式的角度来解释JSON,数据交换是谁和谁作交换呢? web客户端和服务端吧。在先后端分离的大势,JSON是前段和后端的一种数据交换形式,不单单是先后端的一种数据交换形式,仍是系统之间进行数据交换的一种形式。前后端分离
为何须要JSON呢?
那就要请出XML同志了,在没有JSON同志以前,都使用XML进行数据交换,可是XML并不简单,有着各类各样的数据约束,越搞越复杂,咱们但愿数据交换形式尽量的简单一些,不想再去了解那些让人头痛的那一大堆的复杂规范。设计