# 序列化与反序列化

### Python

#### 序列化（将程序自有的数据类型转化为json格式的字符串）

```python
import json

data = {'city': 'beijing', 'code': '100000', 'tel': '010'}
print(repr(data), type(data))

dumps_data = json.dumps(data)
print(repr(dumps_data), type(dumps_data))


# output:
{'city': 'beijing', 'code': '100000', 'tel': '010'} <class 'dict'>
'{"city": "beijing", "code": "100000", "tel": "010"}' <class 'str'>
```

#### 反序列化（将json格式的字符串转化为程序自有的数据类型）

```python
import json

data = '{"city": "beijing", "code": "100000", "tel": "010"}'
print(repr(data), type(data))

loads_data = json.loads(data)
print(repr(loads_data), type(loads_data))


# output:
'{"city": "beijing", "code": "100000", "tel": "010"}' <class 'str'>
{'city': 'beijing', 'code': '100000', 'tel': '010'} <class 'dict'>
```

### JavaScript

#### 序列化（将程序自有的数据类型转化为json格式的字符串）

```javascript
data = {city: 'beijing', code: '100000', tel: '010'}
console.log(data, typeof data)

str_data = JSON.stringify(data)
console.log(str_data, typeof str_data)


// output:
{city: 'beijing', code: '100000', tel: '010'} 'object'
{"city":"beijing","code":"100000","tel":"010"} string
```

#### 反序列化（将json格式的字符串转化为程序自有的数据类型）

```javascript
data = '{"city": "beijing", "code": "100000", "tel": "010"}'
console.log(data, typeof data)

parse_data = JSON.parse(data)
console.log(parse_data, typeof parse_data)


// output:
{"city": "beijing", "code": "100000", "tel": "010"} string
{city: 'beijing', code: '100000', tel: '010'} 'object'
```
