本文主要介紹二進位協議gob及msgpack的基本使用。
最近在寫一個gin框架的session服務時遇到了一個問題,Go語言中的json包在序列化空接口存放的數字類型(整型、浮點型等)都序列化成float64類型。
我們構造一個結構體如下:
type s struct {
\tdata map[string]interface{}
}
json序列化的問題
輸出結果:
"{\"count\":1}"
{map[count:1]}
value:1, type:float64
gob序列化示例
標準庫gob是golang提供的「私有」的編解碼方式,它的效率會比json,xml等更高,特別適合在Go語言程序間傳遞數據。
msgpack
MessagePack是一種高效的二進位序列化格式。它允許你在多種語言(如JSON)之間交換數據。但它更快更小。
安裝
go get -u github.com/vmihailenco/msgpack
示例
原文連結:https://www.liwenzhou.com/posts/Go/gob_msgpack/
本文作者:李文周,原創授權發布