持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情
前言
大家好呀,我是L同学。在上篇文章ajax知识点总结(二)中,我们ajax的知识点,包括同步与异步、XMLHttpRequest等相关知识点。今天,在这篇文章中,我们将学习数据交互、josn数据等相关知识点。
数据交互
浏览器端只是负责用户的交互和数据的收集以及展示,真正的数据都是存储在服务器端的。但是每个编程语言的语法都不一样。因此我们会采用通用的数据交换格式(XML、JSON)来进行数据的交互。简单理解就是数据交换格式,就是服务器端与客户端之间进行数据传输与交换的格式。
前端领域,经常提及的两种数据交换格式分别是 XML 和 JSON。其中 XML 用的非常少,所以,我们重点要学习的数据交换格式就是 JSON。
XML
XML 指可扩展标记语言(EXtensible Markup Language)。XML 是一种标记语言,很类似 HTML。它的设计宗旨是传输数据,而非显示数据。XML 标签没有被预定义,需要自行定义标签。
XML的语法规范是:
- 必须有一个根元素(有且仅有一个)
- 标签不可有空格、不可以数字或.开头、大小写敏感
- 不可交叉嵌套,都是双标签,如果是单标签,必须闭合
- 属性双引号(浏览器自动修正成双引号了)
- 注释和 HTML 一样
<students>
<student>
<name>张三</name>
<age>18</age>
<gender>男</gender>
<desc>路人甲</desc>
</student>
<student>
<name>李四</name>
<age>20</age>
<gender>男</gender>
<desc>路人乙</desc>
</student>
</students>
XML虽然可以描述和传输复杂数据,但是格式臃肿,和数据无关的代码多,体积大,传输效率低。并且,在 Javascript 中解析 XML 比较麻烦。所以实现开发已经很少使用了。
JSON数据
JSON的英文全称是JavaScript Object Notation, 即 "JavaScript对象表示法"。简单来讲, JSON就是JavaScript对象和数组的字符串表示法, 使用文本表示一个JS对象或数组的信息, 因此, JSON的本质是字符串。JSON 是一种轻量级的文本数据交换格式,在作用上类似于 XML,专门用于存储和传输数据,但是 JSON 比 XML 更小、更快、更易解析。它 是在 2001 年开始被推广和使用的数据格式,到现今为止,JSON 已经成为了主流的数据交换格式。
JSON格式
- 数据在名称/值对中
- 数据由逗号分隔(最后一个健/值对不能带逗号)
- 花括号保存对象,方括号保存数组
- 键使用双引号
需要注意的是:
- 属性名必须使用双引号包裹
- 字符串类型的值必须使用双引号包裹(JSON 中不允许使用单引号表示字符串)
- JSON 中不能写注释
- JSON 的最外层必须是对象或数组格式
- 不能使用 undefined 或函数作为 JSON 的值
var obj = { a: "Hello", b: "World" }; // 这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; // 这是一个 JSON 字符串,本质是一个字符串
JSON和js对象的关系
JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
//这是一个对象
var obj = {a: 'Hello', b: 'World'}
//这是一个 JSON 字符串,本质是一个字符串
var json = '{"a": "Hello", "b": "World"}'
JSON与js对象的相互转换
调用 JSON.stringify() 函数,把数据对象转换为json字符串的过程,叫做JSON序列化。
// JSON.stringify(obj) 实现 JS 对象 ==> JSON 字符串
// obj是一个js对象
var obj = { a: "Hello", b: "World" };
// result就变成了一个json字符串了
var result = JSON.stringify(obj); // '{"a": "Hello", "b": "World"}'
调用 JSON.parse(),把json字符串转换为数据对象的过程, 叫做JSON反序列化。
// JSON.parse(obj) 实现 JSON 字符串 ==> JS 对象
// json是一个json字符串
var json = '{"a": "Hello", "b": "World"}';
// obj就变成了一个js对象
var obj = JSON.parse(json); // {a: 'Hello', b: 'World'}