ajax知识点总结(三)

123 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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'}