数据交换格式
什么是数据交换格式
数据交换格式,就是服务器端与客户端之间进行数据传输与交换的格式。前端领域经常提及的两种数据交换格式分别是 XML 和 JSON,其中 XML 用的非常少。
XML
XML 是什么
XML 的全称是 EXtensible Markup Language,即可扩展标记语言。因此 XML 和 HTML 类似,也是一种标记语言。
XML 和 HTML 的区别
XML 和 HTML 虽然都是标记语言,但是,它们两者之间没有任何的关系。
- HTML 被设计用来描述网页上的内容,是网页内容的载体
- XML 被设计用来传输和存储数据,是数据的载体
XML 的缺点
- XML 格式臃肿,和数据无关的代码多,体积大,传输效率低
- 在 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 种类型。
语法注意事项
- 属性名必须使用双引号包裹
- 字符串类型的值必须使用双引号包裹
- JSON 中不允许使用单引号表示字符串
- JSON 中不能写注释
- JSON 的最外层必须是对象或数组格式
- 不能使用 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 反序列化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南