笔记系列-JSON以及序列化理解

787 阅读1分钟

一、JSON

理解:JS的子集,因此可以直接使用eval;但是并不属于JS,只是一种数据结构。

1.1 JSON的语法

- 简单值
- 对象
- 数组
PS:以上JSON不支持变量、函数、对象实例;K必须使用双引号;不支持undefined

1.2 JSON解析与序列化

1.2.1 整体感知

var obj_JS = {
    "title": "My note about JSON",
    "authors":[
        "liming","fanhgzhouzhou"
    ],
    age: 3,
    year:2018
}
// 把JS对象序列化为JSON字符串
var jsonText_1 = JSON.stringify(obj_JS)
// 把JSON字符串解析为原始JS对象
var jsonBack_1 = JSON.parse(jsonText_1)

var arr_JS = [
    "yaer",'name',"age","when"
]
// 把JS数组序列化为JSON字符串
var jsonText_2 = JSON.stringify(arr_JS)
// 把JSON字符串解析为原始JS数组
var jsonBack_2 = JSON.parse(jsonText_2)
    

1.2.2 解析(反序列化) JSON.parse()

和JSON.stringify不同的是不包括第三个参数

1.2.3 序列化 JSON.stringify()

二、序列化

2.1 序列化的理解

根据百度百科上的说明:将对象的状态信息转换成可以存储或传输的形式的过程。以json的序列化来举例说明,就是通过将JSON数据转换为字符串,就是数据外层包裹了一对双引号。序列化后的JSON成为字符串,替代了XML作为网络结构化数据传输的类型

2.2 序列化的作用

- 以某种存储形式将自定义对象持久化
- 将对象从一个地方传递到另一个地方
- 使程序更具维护性

2.3 内存和磁盘(硬盘)

序列化后的变量可以储存在磁盘中,实现永久保存数据