gob序列化工具使用

2021-08-15 12:48:08 字數 972 閱讀 1590

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...