gob是谷歌自己的序列化工具,只能在go語言中使用。常用的場景就是rpc傳輸資料。
閒話少說直接上**:
package main
import (
"encoding/gob"
"bytes"
"log"
"fmt"
)type user struct
type student struct
func main()
buf:=new(bytes.buffer)//分配記憶體
fmt.println(buf)
enc:=gob.newencoder(buf)//建立基於buf記憶體的編碼器
err:=enc.encode(u)//編碼器對結構體編碼
if err!=nil
fmt.println(buf.bytes())
us:=user{}
bu:=bytes.newbuffer(buf.bytes())//使用buf裡面的資料建立初始化buffer
des:=gob.newdecoder(bu)//建立bu的解碼器
des.decode(&us)//對buf內容解碼,並將解碼後的資料寫入us的記憶體中
fmt.println(us)
st:=student{}
bus:=bytes.newbuffer(buf.bytes())//使用buf裡面的資料建立初始化buffer
dess:=gob.newdecoder(bus)//建立bu的解碼器
dess.decode(&st)//對buf內容解碼,並將解碼後的資料寫入us的記憶體中
fmt.println(st)
}
關於gob本人總結了一些需要注意的地方:
1,結構體中的屬性必須大寫開頭。不然無法序列化
2,序列化的struct與反序列化的struct結構可以不一樣。只會匹配屬性相同的資料。
物件序列化工具
物件類的序列化輕型的xml和複雜型的byte方式 物件序列化工具 public class objectserializationhelper return xmlserializer dict thash 把物件序列化為字串 物件型別 物件 序列化後的字串,失敗則會丟擲異常資訊 public st...
ProtoStuff序列化工具
專案中http通訊離不開物件的序列化和反序列化,通過序列化技術,可以跨語言實現資料的傳輸,例如把乙個物件序列化後的二進位制資料 xml格式資料存放在檔案中,下次通過讀取檔案,然後反序列化一下即可重新生成該物件,抑或通過網路把序列化後的資料傳輸到另乙個終端,對方通過反序列化後也可以重新複製出乙個大概相...
Marshmallow JSON 序列化工具
轉換格式 string object string互相轉換 定義 scheme from datetime import datetime class user def init self,name,email self.name name self.email email self.created...