目录
一、什么是数据交换格式
数据交换格式是指服务器
与客户端
之间进行数据传输与交换的格式
。
在前端,经常提到的数据交换格式是JSON和XML。XML用的非常少,JSON是主流的数据交换格式
二、XML数据交换格式
XML全称:EXtensible Markup Language,中文叫可扩展标记语言
。
1、XML特点
XML与HTML类似,也是一种标记语言。
<note>
<to>ls</to> // 发给谁
<from>zs</from> // 谁发的
<heading>通知</heading> // 标签
<body>晚上开会</body> // 内容
</note>
2、XML与HTML的区别
虽然都是标记语言,但是两者没有任何关系
HTML是用来描述网页的内容,是网页的载体
XML是用来传输和存储数据,是数据的载体
3、XML缺点
① 格式臃肿,和数据无关的代码多,体积大,传输效率低
② 在JS中解析XML比较麻烦
三、JSON数据交换格式
JSON全称JavaScript Object Notation,即“JavaScript对象表示法
”,
简单来说:JSON就是用字符串来表示javascript对象数据或数组数据
,它使用文本表示一个JS对象或数据信息。
1、理解
JSON是一种轻量级的数据交互格式,专门用来传输和存储数据
JSON本质是字符串
2、JSON的两种结构
JSON包含对象和数组
两种结构,通过这两种结构互相嵌套,可以表示各种复杂的数据结构。
① 对象结构
为{}括起来的内容
,数据表示为{key:value,key:value,…}的键值对结构。
key必须是使用英文的双引号包裹
的字符串,value的数据类型可以是数字、字符串、布尔值、null、数组、对象
6中类型
JSON中所有的字符串都必须用双引号来包裹
{
"name":"憨瓜",
"age":3,
"sex":'公猫已绝育',
"adress":null,
"hobby":["气人","咬人","挠人"]
}
③ 数组结构
为[]括起来的内容
。数据表示为[“咬人”,“挠人”,3,false…]的数组结构。
数据的类型可以是:数字、字符串、布尔值、null、数组、对象
6种类型。
["气人","咬人","挠人"],
[100,200,300],
[true,false,null],
[{"name":"憨瓜","age":3,"sex":'公猫已绝育'},{"name":"波妞","age":3,"sex":'母猫已绝育'}],
[["憨瓜","波妞","快来"],["德文","德武","小白"]]
3、注意项
① 属性名必须使用双引号包裹
② 字符串类型的值必须用双引号来包裹
,JSON不能使用单引号来表示字符串
③ JSON中不能写注释
④ JSON最外层必须是对象或数组格式
⑤ JSON的值不能是undefined或函数
4、优点
在作用上与XML类似,但是 JSON比XML更小,更快,更易解析。
简单来说:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
四、JSON与JavaScript对象的关系
1、两者关系
JSON是JavaScript对象的字符串表示法
,它使用文本表示一个JS对象的信息。
JSON遵循JavaScript的属性命名规范
// 这是一个对象
var obj = {name: '憨瓜', sex: '公猫已绝育'}
// 这是一个JSON字符串,本质是一个字符串
var json = '{"name": "憨瓜", "sex": "公猫已绝育"}'
2、JSON字符串转化为JS对象
使用JSON.parse()
方法
var obj = JSON.parse('{"name": "憨瓜", "sex": "公猫已绝育"}')
// 结果是:{name: '憨瓜', sex: '公猫已绝育'}
3、JS对象转换为JSON字符串
使用JSON.stringify()
方法
var json = JSON.stringify({name: '憨瓜', sex: '公猫已绝育'})
// 结果:'{"name": "憨瓜", "sex": "公猫已绝育"}'
五、序列化与反序列化
1、序列化
把数据对象转换为字符串
的过程,叫做序列化
。
调用JSON.stringify()函数的操作,叫做JSON序列化。JSON.stringify()函数是序列化函数
2、反序列化
把字符串转换为数据对象
的过程,叫做反序列化
。
调用JSON.parse()函数的操作,叫做JSON反序列化。SON.parse()函数是反序列化函数