1. 程式人生 > >Go語言的序列化與反序列化(gob)

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) }