在程序运行的过程中,所有的变量都是在内存中。可以随时修改变量,但是一旦程序结束,变量所占用的内存就会被操作系统全部回收。如果你想在程序退出后,仍然可以访问数据,就需要使用序列化,将对象的当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入到磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化。
序列化的目的
- 以某种存储形式使自定义对象持久化
- 将对象从一个地方传递到另一个地方
- 使程序更具维护性
序列化为json格式
如果要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML
,但通常使用JSON
格式。因为JSON表示出来就是一个字符串,可以被所有语言读取,且读取速度比XML更快,非常方便。
Go
内置的标准包encoding/json
下面有Go
对象到Json
格式的转化,官方有关介绍可以戳https://golang.org/doc/articles/json_and_go.html。
json.Marshal
func