数据交换格式
就是服务器端与客户端之间进行数据传输与交换的格式。
前端领域,经常提及的两种数据交换格式分别是XML(使用较少)和JSON(主要)
XML
XML和HTML的区别
都是标记语言,但是,他们两者之间没有任何的关系。
HTML被设计用来描述网页上的内容,是网页内容的载体
XML被设计用来传输和存储数据,是数据的载体
XML的缺点
格式臃肿,和数据无关的代码多,体积大,传输效率低
在Javascript中解析XML比较麻烦
JSON
概念:JavaScript Object Notation 即JavaScript对象表示法,简单来讲 JSON就是JavaScript对象和数组的字符串表示法,它使用文本表示一个JS对象或数组的信息,因此JSON的本质是字符串。
作用:JSON 是一种轻量级的文本数据交换格式,在作用上类似于XML,专门用于存储和传输数据,但是JSON比XML更小、更快、更易解析。
现状:JSON是在2001年开始被推广和使用的数据格式,到现在为止,JSON已经成为了主流的数据交换格式。
JSON的对象结构:
用{}括起来内容的键值对,key必须是英文双引号包裹的字符串,value可以是数字、字符串、布尔值、null、数组、对象6种类型。
JSON的数组结构
用[] 括起来的内容。数据结构可以是数字、字符串、布尔值、null、数组、对象6种类型。
JSON注意事项
- 属性名必须用英文双引号包裹
- 字符串类型必须用英文双引号包含、不允许用单引号
- 不支持写注释(需另行安装依赖)
- 最外层必须是数组或者对象格式
- 不能使用undefined或function 作为JSON的值
JSON | JS对象 | |
键名字字符串 | 必须双引号 | 键名双引号,单引号,或者无引号 字符串双引号,单引号或反引号 |
数据类型 | 没有null,NaN,Infinity和函数 | 多种类型都有 |
逗号 | 最后一个键名对应的值不能有 | 最后一个可加上 |
0. | 不行 | 可以 |
JSON的作用:在计算机与网络之间进行储存和传输数据
JSON的本质:用字符串来表示JavaScript 对象数据或数组数据
转换方法
JSON => JS JSON.parse() 反序列化
const str = '{\n' +
'"msg":"请求商品列表数据成功",\n' +
'"state": 200,\n' +
'"data":[\n' +
'{\n' +
'"id":5471,\n' +
'"goodsClass":"CPU",\n' +
'"goodsBrand":"英特尔",\n' +
'"goodsName":"I3-12100F",\n' +
'"goodsPrice":759\n' +
'},\n' +
'{\n' +
'"id":5472,\n' +
'"goodsClass":"GPU",\n' +
'"goodsBrand":"索泰",\n' +
'"goodsName":"GTX-1650",\n' +
'"goodsPrice":1159\n' +
'}\n' +
']\n' +
'}'
console.log(str)
console.log(JSON.parse(str))
JS => JSON JSON.stringify() 序列化
let json1 = [
{
name:'莫德里奇',
work:'中场',
num:10
},
{
name:'姆巴佩',
work:'边锋',
num:15
},
{
name:'C罗',
work:'前锋',
num:7
}
]
console.log(json1)
console.log(JSON.stringify(json1))
console.log(typeof JSON.stringify(json1))