Go語言的序列化與反序列化(gob)
阿新 • • 發佈:2018-12-20
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)
}