1.What——什么是对象的序列化
JS中的对象使用时都是存在于计算机的内存中的
- 序列化指将对象转换为一个可以存储的格式
在JS中对象的序列化通常是将一个对象转换为字符串(JSON字符串)
2.Why——为什么要进行序列化(序列化的用途)
- 对象转换为字符串后,可以将字符串在不同的语言之间进行传递 甚至人可以直接对字符串进行读写操作,使得JS对象可以不同的语言之间传递
- 用途: 1. 作为数据交换的格式 2. 用来编写配置文字
3.How——如何进行序列化
- 在JS中有一个工具类 JSON (JavaScript Object Notation) JS对象表示法 - JS对象序列化后会转换为一个字符串,这个字符串我们称其为JSON字符串
- JSON.stringify() 可以将一个对象转换为JSON字符串
- JSON.parse() 可以将一个JSON格式的字符串转换为JS对象
- 也可以手动的编写JSON字符串,在很多程序的配置文件就是使用JSON编写的
const obj = {
name: "孙悟空",
age: 18,
}
// 将obj转换为JSON字符串
const str = JSON.stringify(obj) //JSON.stringify() 可以将一个对象转换为JSON字符串
const obj2 = JSON.parse(str) // JSON.parse() 可以将一个JSON格式的字符串转换为JS对象
// console.log(obj)
// console.log(str) // {"name":"孙悟空","age":18}
// console.log(obj2)
//手动转换为JSON字符串
const str2 = `{"name":"猪八戒","age":28}`//在模板字符串中
const str3 = "{}"
const str4 = '["hello", true, []]'
console.log(str2)
补充:在模板字符串中,我们可以通过在反引号``内编写${变量}的形式将字符串和动态的变量拼接的到一起
4.Notice——注意事项
编写JSON的注意事项:
1. JSON字符串有两种类型: JSON对象 {} JSON数组 []
2. JSON字符串的属性名必须使用双引号引起来
3. JSON中可以使用的属性值(元素)
- 数字(Number)
- 字符串(String) 必须使用双引号
- 布尔值(Boolean)
- 空值(Null)
- 对象(Object {})
- 数组(Array [])
4. JSON的格式和JS对象的格式基本上一致的,
注意:JSON字符串如果属性是最后一个,则不要再加 ,