一,什么是数据序列化?
说得直白一点,就是数据在内存的对象形式和在网络传送形式的双向转换,本质是协议的转换技术。一个内存对象,通过序列化成数据流后可以很方便的进行网络传输或者可以很方便的进行磁盘存储。而把磁盘中或者网络中的数据流“重建”成对应内存对象,方便各种API对对象进行操作的过程,则是反序列化过程。
二,常用的序列化技术
1,普通的二进制协议和c语言中的struct结构体,就大家经常看到的序列化技术之一。
或者叫网络打包或者解包技术,把结构体的数据转换成网络字节序后写入到IO中,本质就是一个序列化的过程。相对的,从网络IO流中读取数据后填充到对应的内存结构体过程就是反序列化过程。
2,XML技术
XML序列化技术在MS的Dot NET战略中使用非常普遍,也是非常常用的序列化技术,优点是:自说明,可阅读性强,但XML效率低下。
3,JSON技术
偶认为JSON也是一个很不错的序列化技术。
4,Google发明的ProtocolBuffer,具体看参考: https://developers.google.com/protocol-buffers/docs/overview?hl=zh-CN
说得直白一点,就是数据在内存的对象形式和在网络传送形式的双向转换,本质是协议的转换技术。一个内存对象,通过序列化成数据流后可以很方便的进行网络传输或者可以很方便的进行磁盘存储。而把磁盘中或者网络中的数据流“重建”成对应内存对象,方便各种API对对象进行操作的过程,则是反序列化过程。
二,常用的序列化技术
1,普通的二进制协议和c语言中的struct结构体,就大家经常看到的序列化技术之一。
或者叫网络打包或者解包技术,把结构体的数据转换成网络字节序后写入到IO中,本质就是一个序列化的过程。相对的,从网络IO流中读取数据后填充到对应的内存结构体过程就是反序列化过程。
2,XML技术
XML序列化技术在MS的Dot NET战略中使用非常普遍,也是非常常用的序列化技术,优点是:自说明,可阅读性强,但XML效率低下。
3,JSON技术
偶认为JSON也是一个很不错的序列化技术。
4,Google发明的ProtocolBuffer,具体看参考: https://developers.google.com/protocol-buffers/docs/overview?hl=zh-CN