JavaScript 基础
Document
运算符
深入数据和类型
函数进阶
原型、继承
类
浏览器存储
Web API
事件
错误处理
异步编程
网络请求
模块
练习
实例
工具与规范
软件架构模式
设计模式
JSON 对象
JSON
对象仅包含两个方法, stringify
方法将对象转成 JSON 格式的字符串, parse
方法将 JSON 格式的字符串解析成对象。
$$tip JSON 格式虽然和对象很相似,但它们不是一个东西。 JSON 格式是表达数据的一种格式,对象是一种数据类型。 $$
$$tip JSON 格式通常用于保存数据,或者传输数据。 $$
JSON 格式
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
JSON 是使用字符串表示数据结构的一种规范标准, 已经被很多语言所采用,用来作为数据传输或保存的规范。像前后端交互中, RESTful API 的交互标准就是基于 JSON 格式的。
$$tip
使用统一的标准可以使得不同语言开发的程序能进行数据交互,在 JSON 之前流行的是使用 XML 格式, 但 JSON 出现后随之简单易懂和轻量的原因逐渐取代了 XML 成为最流行的格式。
$$
$$tip JSON 格式是一种格式、规范,它使用字符串来表达。所以任何数据转成 JSON 格式后都是字符串类型。 $$
stringify
stringify
被称为序列化,可以将值转成 JSON 格式字符串。
$$tip
序列化指的是将值转成可以存储或传输的数据形式的过程。
$$
let person = {
name: "鸣人",
age: 20,
}
let result = JSON.stringify(person)
alert(typeof result) // string,序列化后数据为字符串类型
$$tip
序列化与转成字符串( toString
)是两个概念,序列化是为了能够方便地存储或传输数据,最终数据还能够被反序列化成内存中的值使用。因此序列化与反序列化必须遵守一套严格的规则。
而转成字符串( toString
)大部分的场景是为了展示给用户看,并且不要求能再转回数据。
$$
$$jsdemo$$
$$edit$$
alert(JSON.stringify(123)) // 123
alert(JSON.stringify([1, 2, 3])) // [1,2,3]
alert(
JSON.stringify({
name: "鸣人",
age: 18,
})
) // {"name":"鸣人","age":18}
$$tip
有关序列化的规则请看 stringify 描述 - MDN。
$$
parse
parse
被称为反序列化,可以将 JSON 格式字符串转成内存中的值。
$$jsdemo$$
$$edit$$
let str = '{"name":"鸣人","age":18}'
let person = JSON.parse(str)
console.log(typeof person) // object
console.log(person) // {name: '鸣人', age: 18}
实战:保存数据的表格
实战项目成绩管理表 , 数据能实时保存在浏览器中,使用到了本章 JSON 对象的知识点与 Storage 章节知识点。