什么是数据交换格式

数据交换格式,就是服务器端客户端之间进行数据传输与交换的格式。前端领域经常提及的两种数据交换格式分别是 XML 和 JSON,其中 XML 用的非常少。

XML

XML 是什么

XML 的全称是 EXtensible Markup Language,即可扩展标记语言。因此 XML 和 HTML 类似,也是一种标记语言。

 

html5 和 json文件 json与html的区别_XML

 

XML 和 HTML 的区别

XML 和 HTML 虽然都是标记语言,但是,它们两者之间没有任何的关系。

  • HTML 被设计用来描述网页上的内容,是网页内容的载体
  • XML 被设计用来传输和存储数据,是数据的载体

XML 的缺点

  1. XML 格式臃肿,和数据无关的代码多,体积大,传输效率低
  2. 在 js 中解析 XML 比较麻烦

JSON

什么是 JSON

JSON 的全称是 JavaScript Object Notation,即 JavaScript对象表示法。简单来讲,JSON 就是 JavaScript 对象和数组的字符串表示法。它使用文本表示一个 JS 对象或数组的信息,因此,JSON 的本质是字符串

作用

JSON 是一种轻量级的文本数据交换格式,在作用上类似于 XML,专门用于存储和传输数据,但 JSON 比 XML 更小、更快、更易解析。

JSON 的两种结构

JSON 就是用字符串来表示的 js 对象和数组。所以,JSON 中包含对象数组两种结构,通过这两种结构的互相嵌套,可以表示各种复杂的数据结构。

对象结构:对象结构在 JSON 中表示为 { } 括起来的内容。数据结构为 { key:value, key:value, ... } 的键值对结构。其中,key 必须是使用英文的双引号包裹的字符串,value 的数据类型可以是数字、字符串、布尔值、null、数组、对象 6 中类型。

数组结构:数组结构在 JSON 中表示为 [ ] 括起来的内容。数据结构为 ["java", "javascript", 30, true...]。数组中数据的类型可以是数字、字符串、布尔值、null、数组、对象 6 种类型。

语法注意事项

  1. 属性名必须使用双引号包裹
  2. 字符串类型的值必须使用双引号包裹
  3. JSON 中不允许使用单引号表示字符串
  4. JSON 中不能写注释
  5. JSON 的最外层必须是对象或数组格式
  6. 不能使用 undefined 或函数作为 JSON 的值

JSON 和 JS 对象的互转

JSON 字符串转 JS 对象可以使用 JSON.parse() 方法。

let json = '{"a":"Hello", "b":"World"}'
  let obj = JSON.parse(json)
  console.log(json);
  console.log(obj);

JS 对象转 JSON 字符串可以使用 JSON.stringify() 方法。

let obj1 = { a: 'hello', b: 'world' }
  let json1 = JSON.stringify(obj1)
  console.log(json1);

序列化和反序列化

序列化:把数据对象转换为字符串的过程,叫做序列化。例如调用 JSON.stringify() 函数的操作,就叫做 JSON 序列化。

反序列化:把字符串转换为数据对象的过程,叫做反序列化。例如调用 JSON.parse() 函数的操作,叫做 JSON 反序列化。