一、JSON 定义
JSON全称 JavaScript Object Notation,是一种轻量级的文本数据交换格式,它是基于ECMAScript的一个子集,独立于语言,并且在java、C++、Python等其他语言中也有,所以JSON相当于一个中转站,能够达成各种语言间交换数据,也就是说能够实现互相通信,因为各个语言都能识别JSON,所以这些特性使JSON成为理想的数据交换语言,而其实我们大多数的业务逻辑也就是通过通信过来的数据再进行下一步开展的。
二、语法规则 (格式要求)
1、数据在名称/值对中
2、数据由逗号分隔(最后一个键/值对不能带逗号),这个点一定要注意,有时候容易忽略
3、花括号保存对象;方括号保存数组
4、键必须使用双引号 注意跟js中的对象的区别,json并不属于js,是从js中抽出来的,源自于js独立出来的;
三、JSON解析
在工作当中,我们经常会有这样的需求,需要客 户端向服务器端通过地址栏或者post、get提交数据,然后服务器端处理完数据之后,将计算的结果信息回传给客户端,那么这时就存在了一定的难度,特别是数据量较大时。这个时候数据的格式成了关键,所以我们应该能够选择到某种格式可以很方便的进行数据的组装,然后可以很方便的进行 解析那就再好不过了,这时JSON便是在这里的不二选择。那接下来你只需要在客户端向服务器提交信息的时候,先按照JSON的格式拼装好一个字符串,提交给服务器端;服务端在接到请求之后,就可以将从服务端返回的数据按照JSON的格式拼装好一个字符串,响应给客户端。
另外需要知道不同的语言各自也都对应有其解析方法,需要解析完成后才能读取,下面在这里只是简要分析一下Javascript和PHP的解析方式;
1、Javascript 解析方法
主要是这三种eavl()、 JSON.parse()、JSON.stringify()
;
例如如果Javascript想传递一个复杂的数据类型给PHP等后台语言,就先通过JSON.stringify()将其字符串化(JSON)后传过去,到PHP那边可以通过json_decode()
解码成PHP能够使用的数据;
那从后端响应回来的数据,Javascript可以通过JSON.parse()
或者eavl()
来进行解析就可以达到Javascript的对象了,接下来也就可以进行相应的业务逻辑了
JSON兼容处理可以引入[json2.js](http://www.JSON.org/json2.js)
这个文件
2、PHP解析方法
json_encode(){将PHP数组转成json格式的字符串}
json_decode(){由json格式的字符串转成PHP能用的数据}
也就是说如果PHP想传递一个复杂的数据类型给Javascript,就先通过json_encode()
其字符串化为(JSON)后传过去,到Javascript那边可以通过JSON.parse()
解码成Javascript能够使用的数据;
总结:JSON体积小、解析方便且高效,在实际开发成为首选。另外工作当中可能
四、JSON 文件类型
JSON 文件的文件类型是 “.json”
JSON 文本的 MIME 类型是 “application/json”
五、对比XML
XML是一种标记语言,很类似HTML,其宗旨是用来传输数据,具有自我描述性(固定的格式的数据)。XML可以随意通过自定义标签使数据更加具有可读性;
1、语法规则
1、必须有一个根元素
2、不可有空格、不可以数字或.开头、大小写敏感
3、不可交叉嵌套
4、属性双引号(浏览器自动修正成双引号了)
5、特殊符号要使用实体
6、注释和HTML一样
2、对比
虽然可以描述和传输复杂数据,但是其解析过于复杂并且体积较大,所以实现开发已经很少使用了,所以现在大多数是采用的JSON格式进行传输数据