首先我们需要知道数据交换格式是什么?
所谓数据交换格式,就是服务器端与客户端之间进行了数据传输与交换格式
我们前端领域经常提及的俩种数据交换格式分别是XML和JSON,其中XML用的比较少,但XML拥有跨平台、跨语言的优势,JSON比较常用,JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,同XML或HTML片段相比,JSON提供了更好的简单性和灵活性;在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml,并且非常适合于服务器与JavaScript 的交互。
接下来我们来分别了解一下XML和JSON
目录
一.XML
Extensible Markap Language:可扩展标记性语言
是否有些熟悉,没错XML和HTML类似,都是一种标记语言,但是这俩个可没有什么关系:
HTML是用来描述网页上的内容,是网页内容的载体
XML是用来传输和存储数据的,是数据的载体
我们通过一张图来了解一下这俩个"亲兄弟":
我们在前言提到不常用XML,因为它的俩个较大的缺点:
一是格式臃肿,和数据无关的代码很多,体积大,传输效率低,JS中解析XML是比较麻烦的,JS可是JSON的主场
二.JSON
JavaScript Object Notation:JavaScript对象表达法
我们前言中了解到JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,非常适合于服务器与JavaScript 的交互
简单来说JSON就是JS对象和数组的字符串表示法,JSON使用文本表示一个JS对象或者数组信息,本质就是字符串,在计算机于网络之间存储和传输数据
三.JSON的俩种结构
JSON中包含了对象和数组俩种结构,通过这俩种结构的相互嵌套,我们可以表示各种复杂的数据结构
1.对象结构
对象结构在JSON中表示为{ }中的内容,数据结构为键值对的形式。键必须要使用" "来将其包裹,值可以有6种类型,分别为:数字、字符串、布尔值、null、数组以及对象
{"key":value,"key":value,...}
2.数组结构
数组结构在JSON中表示为[ ]中的内容,和对象结构一样,它的值也可以有6种类型,分别为:数字、字符串、布尔值、null、数组以及对象
["java","JavaScript","XML",100,true,null...]
四.JSON语法
我们这里陈述一下JSON的语法规范:
1.属性名和字符串类型的值必须使用" "来包裹,不可以使用' '来表示字符串
2.JSON不能写注释
3.JSON的最外层必须为对象或数组格式
4.不能使用undefined和函数来作为JSON值
五.JSON和JS对象的关系
之前说到JS是的JSON的主场,那么,不难分辨,可以说JSON就是JS的一个子集
我们观察代码分析这俩个的区别和关系:
//JS对象:
var obj = {x:"Hello",y:"World"};
//JSON对象:
var json = {"x":"Hello","y":"World"};
六.序列化与反序列化
当我们使用 JSON.stringify() 方法将JS对象转换为JSON字符串时的这个过程就是序列化
var json = JSON.stringify({x:"你看我是对象还是字符串"});
//返回值:{"a":"你看我是对象还是字符串"};
当我们使用 JSON.parse() 方法将JSON字符串转换为JS对象时的这个过程就是反序列化
var obj = JSON.parse({"x":"你看我是对象还是字符串"});
//返回值:{a:"你看我是对象还是字符串"};