除了 json,你還會哪些消息協議?二進位協議gob和msgpack了解下

2019-09-16     Go語言中文網

本文主要介紹二進位協議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/

本文作者:李文周,原創授權發布

文章來源: https://twgreatdaily.com/zh/J7b3Om0BJleJMoPMbD1v.html