Go语言的序列化与反序列化(gob)
encoding/gob包实现了高效的序列化,特别是数据结构较复杂的,结构体、数组和切片都被支持。
实现代码如下:
//定义一个结构体
type Student struct {
Name string
Age uint8
Address string
}
func main(){
//序列化
s1:=Student{"张三",18,"江苏省"}
var buffer bytes.Buffer
encoder := gob.NewEncoder(&buffer)//创建编码器
err1 := encoder.Encode(&s1)//编码
if err1!=nil{
log.Panic(err1)
}
fmt.Printf("序列化后:%x\n",buffer.Bytes())
//反序列化
byteEn:=buffer.Bytes()
decoder := gob.NewDecoder(bytes.NewReader(byteEn)) //创建解密器
var s2 Student
err2 := decoder.Decode(&s2)//解密
if err2!=nil{
log.Panic(err2)
}
fmt.Println("反序列化后:",s2)
}
Go语言的序列化与反序列化(gob)的更多相关文章
- go 语言的序列化与反序列化
与c 语言一样, 在网络编程中, go语言同样需要进行序列化与反序列化 在c语言中, 通常需要一块内存缓冲区用来收 发数据.缓冲区一般定义成char *buff类型. 当需要发送 数据时, 直接使用m ...
- C#语言-08.序列化与反序列化
a. 序列化:是将对象的状态存储到特定存储介质中的过程 i. 语法:public void Serialize(序列化过程的文件流,保存的对象) b. 返序列化:是从特定存储介质中将数据重新构建对象的 ...
- go语言之行--文件操作、命令行参数、序列化与反序列化详解
一.简介 文件操作对于我们来说也是非常常用的,在python中使用open函数来对文件进行操作,而在go语言中我们使用os.File对文件进行操作. 二.终端读写 操作终端句柄常量 os.Stdin: ...
- C语言JSON序列化/反序列化
最近想找一个C语言处理嵌套结构体和结构体数组的json库,理想的是能够很容易处理复杂结构体嵌套,并且使用简单的,但是没找到比较合适的,于是打算自己封装一个: 两个问题: C语言结构体本身没有元数据,这 ...
- Swift语言精要 - 序列化和反序列化
在swift中你可以把一个对象转换成为数据,你所要做的就是 首先,你需要让对象实现NSObject和NSCoding协议. 其次,实现以下两个方法: encodeWithCoder init(code ...
- golang数据传输格式-序列化与反序列化
golang数据传输格式-序列化与反序列化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必计算机专业毕业的小伙伴应该都知道数据想要持久化存储,必须将其存在I/O设备里面,这些I ...
- golang的序列化与反序列化的几种方式
golang用来序列化的模块有很多,我们来介绍3个. json 首先登场的是json,这个几乎毋庸置疑. 序列化 package main import ( "encoding/json&q ...
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...
- [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化
[.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ...
随机推荐
- Codeforces Round #396 (Div. 2) C. Mahmoud and a Message
地址:http://codeforces.com/contest/766/problem/C 题目: C. Mahmoud and a Message time limit per test 2 se ...
- CodeForces - 919D Substring (拓扑排序+dp)
题意:将一个字符串上的n个字符视作点,给出m条有向边,求图中路径上最长出现的相同字母数. 分析:首先如果这张图中有环,则可以取无限大的字符数,在求拓扑排序的同时可以确定是否存在环. 之后在拓扑排序的结 ...
- JSP SERVLET 基础知识
jsp(java server page)和servlet是JAVA EE规范的两个基本成员,是JAVA WEB开发的重点也是基础知识.JSP本质上也需要编译成SERVLET运行. JSP比较简单,可 ...
- rest字符串匹配模式-初次实现方案
一般的rest访问的路径如同这样的路径 http://localhost:8080/AppName/{class}/{method}/{param1}/{param2}... rest的方法分:POS ...
- SQL语句2
1. SELECT * FROM Persons WHERE City NOT LIKE '%lon%' 2. SELECT * FROM Persons WHERE FirstName LIKE ' ...
- sql 中 in 与 exist 的区别
可以 通过 where 条件 把 null的情况 筛选掉,已避免出现上述的情况. 1, exist 返回 true or false: in 返回 true unknow. not之后 not ...
- ASP.NET MVC Select无限级分类选择下拉框
1:读取父级下的所有子类别 *ViewBag.ParentItemList:不能与ParentId相同 private void ParentDropDownList() { List<SAS. ...
- APPIUM API整理(python)---其他辅助类
App运行类 1.current_activity current_activity(self): 用法: print(driver.current_activity()) Retrieves the ...
- yum安装mysql后root用户的临时密码
1.查看root用户临时随机密码 yum 安装mysql后,无法通过空密码登录数据库,如下: [root@ mysql]# mysql -u root -p Enter password: ERROR ...
- MergeSortedArray,合并两个有序的数组
问题描述:You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold add ...