JSON序列化和反序列化 保姆教程及应用样例
时间: 2024-06-21 19:00:24 浏览: 86
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。序列化和反序列化是两个关键的概念,它们在处理JSON数据时非常重要。
**序列化**:
序列化是将数据结构转换为JSON字符串的过程。这个过程用于在网络通信、存储或持久化数据时,将复杂的数据结构如对象和数组转换为可传输的文本形式。例如,如果你有一个JavaScript对象:
```javascript
let user = {
name: "John",
age: 30,
address: { city: "New York", country: "USA" }
};
```
你可以使用JSON.stringify()方法将其序列化为JSON字符串:
```javascript
let jsonString = JSON.stringify(user);
console.log(jsonString); // {"name": "John", "age": 30, "address": {"city": "New York", "country": "USA"}}
```
**反序列化**:
反序列化则是将JSON字符串重新转换回原始数据结构的过程。当你从网络接收到JSON数据,或者从存储中读取并想要使用它时,可以使用JSON.parse()方法:
```javascript
let restoredUser = JSON.parse(jsonString);
console.log(restoredUser.name); // John
```
**应用样例**:
在Web应用中,常用于服务器-客户端数据交互,比如用户登录信息的存储和恢复:
- 客户端向服务器发送请求(POST、PUT等),包含JSON化的用户信息:
```javascript
fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username: 'john', password: '123456' })
})
```
- 服务器接收到请求后,处理JSON数据,存储用户信息,并返回响应,可能包含JSON化的状态码和消息:
```javascript
// 假设服务器返回
const response = {
status: 200,
message: 'Login successful',
user: { id: 1, name: 'John', ... }
}
// 序列化返回给客户端
res.json(response);
```
阅读全文