亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > golang的序列化與反序列化的幾種方式

golang的序列化與反序列化的幾種方式

熱門標簽:谷歌美發店地圖標注 江蘇呼叫中心外呼系統有效果嗎 赤峰電銷 地圖區域圖標注后導出 貴州電話智能外呼系統 官渡電銷外呼管理系統怎么收費 杭州人工智能電銷機器人費用 利用地圖標注位置 400開頭電話怎樣申請

golang用來序列化的模塊有很多,我們來介紹3個。

json

首先登場的是json,這個幾乎毋庸置疑。

序列化

package main

import (
 "encoding/json"
 "fmt"
)

type Girl struct {
 Name string
 Age int
 Gender string
 Where string
 Is_married bool
}

func main() {
 g := Girl{"satori", 16, "f","東方地靈殿", false}

 //可以直接使用json.Marshal,但是打印出來不好看,這里加上縮進
 ret, err := json.MarshalIndent(g, "", " ")
 if err != nil {
 fmt.Println(err)
 } else {
 //得到的是字節數組,需要轉化成string
 fmt.Println(string(ret))
 /*
 {
  "Name": "satori",
  "Age": 16,
  "Gender": "f",
  "Where": "東方地靈殿",
  "Is_married": false
 }
 */
 }
}

當然golang的大小寫我們知道是具有含義的,如果改成小寫, 那么該字段是無法被序列化的。但是這樣序列化之后的字段,也是大寫,如果我們就想要小寫該怎么辦呢?

package main

import (
 "encoding/json"
 "fmt"
)

type Girl struct {
 //使用`json:"xxx"`相當于起了一個別名xxx,以后序列化出來的字段就叫這個名字,
 Name string `json:"name"`
 Age int `json:"age"`
 Gender string `json:"gender"`
 Where string `json:"where"`
 Is_married bool `json:"is_married"`
}

func main() {
 g := Girl{"satori", 16, "f","東方地靈殿", false}

 ret, err := json.MarshalIndent(g, "", " ")
 if err != nil {
 fmt.Println(err)
 } else {
 fmt.Println(string(ret))
 /*
 {
  "name": "satori",
  "age": 16,
  "gender": "f",
  "where": "東方地靈殿",
  "is_married": false
 }
 */
 }
}

反序列化

package main

import (
 "encoding/json"
 "fmt"
)

type Girl struct {
 Name string `json:"name"`
 Age int `json:"age"`
 Gender string `json:"gender"`
 Where string `json:"where"`
 Is_married bool `json:"is_married"`
}

func main() {
 g := Girl{"satori", 16, "f","東方地靈殿", false}

 ret, err := json.MarshalIndent(g, "", " ")
 if err != nil {
 fmt.Println(err)
 return
 }

 //創建一個變量
 g2 := Girl{}
 //傳入json字符串,和指針
 err = json.Unmarshal(ret, g2)
 if err != nil {
 fmt.Println(err)
 }
 fmt.Println(g2) //{satori 16 f 東方地靈殿 false}
 fmt.Println(g2.Name, g2.Age) // satori 16
}

gob

標準庫gob是golang提供的“私有”的編解碼方式,它的效率會比json,xml等更高,特別適合在Go語言程序間傳遞數據。

序列化

package main

import (
 "bytes"
 "encoding/gob"
 "fmt"
)

type Girl struct {
 Name    string
 Age    int  `json:"age"`
 Gender   string `json:"gender"`
 Where   string `json:"where"`
 Is_married bool  `json:"is_married"`
}

func main() {
 g := Girl{"satori", 16, "f", "東方地靈殿", false}

 //創建緩存
 buf := new(bytes.Buffer)
 //把指針丟進去
 enc := gob.NewEncoder(buf)

 //調用Encode進行序列化
 if err := enc.Encode(g); err != nil {
 fmt.Println(err)
 return
 } else {
 //序列化的內容會被放進buf里面
 fmt.Println(buf.String())
 /*
 G��Girl�� Name Age Gender Where 
 Is_married  !��satori f東方地靈殿
 */
 }
}

發現是亂碼,因為這類似python的pickle,是該語言獨有的。所以我們不認識沒關系,golang認識就行了

反序列化

package main

import (
 "bytes"
 "encoding/gob"
 "fmt"
)

type Girl struct {
 Name    string
 Age    int  `json:"age"`
 Gender   string `json:"gender"`
 Where   string `json:"where"`
 Is_married bool  `json:"is_married"`
}

func main() {
 g := Girl{"satori", 16, "f", "東方地靈殿", false}

 buf := new(bytes.Buffer)
 enc := gob.NewEncoder(buf)
 if err := enc.Encode(g);err != nil {
 fmt.Println(err)
 return
 }

 var g1 = Girl{}
 //bytes.NewBuffer和bytes.Buffer類似,只不過可以傳入一個初始的byte數組,返回一個指針
 dec := gob.NewDecoder(bytes.NewBuffer(buf.Bytes()))
 //調用Decode方法,傳入結構體對象指針,會自動將buf.Bytes()里面的內容轉換成結構體
 if err := dec.Decode(g1);err != nil {
 fmt.Println(err)
 return
 } else {
 fmt.Println(g1) // {satori 16 f 東方地靈殿 false}
 }
}

msgpack

MessagePack是一種高效的二進制序列化格式。它允許你在多種語言(如JSON)之間交換數據。但它更快更小。

安裝

go get -u github.com/vmihailenco/msgpack

序列化和反序列化

接口和json是一致的

package main

import (
 "fmt"
 "github.com/vmihailenco/msgpack"
)

type Girl struct {
 Name    string
 Age    int  `json:"age"`
 Gender   string `json:"gender"`
 Where   string `json:"where"`
 Is_married bool  `json:"is_married"`
}

func main() {
 g := Girl{"satori", 16, "f", "東方地靈殿", false}

 //這個沒有MarshalIndent
 if ret, err := msgpack.Marshal(g); err != nil {
 fmt.Println(err)
 return
 } else {
 fmt.Println(string(ret)) //��Name�satori�Age�    �Gender�f�Where�東方地靈殿�Is_married�
 var g1 = Girl{}
 if err := msgpack.Unmarshal(ret, g1);err!=nil {
  fmt.Println(err)
  return
 } else {
  fmt.Println(g1) // {satori 16 f 東方地靈殿 false}
 }
 }
}

到此這篇關于golang的序列化與反序列化的幾種方式的文章就介紹到這了,更多相關golang 序列化與反序列化內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • golang中的net/rpc包使用概述(小結)
  • go語言net包rpc遠程調用的使用示例
  • Golang Gob編碼(gob包的使用詳解)

標簽:鷹潭 宜春 黔西 松原 武漢 河池 泰安 保定

巨人網絡通訊聲明:本文標題《golang的序列化與反序列化的幾種方式》,本文關鍵詞  golang,的,序列化,與,反,幾種,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang的序列化與反序列化的幾種方式》相關的同類信息!
  • 本頁收集關于golang的序列化與反序列化的幾種方式的相關信息資訊供網民參考!
  • 推薦文章
    精品国产一区二区三区国产馆 | 99久久精品国产高清一区二区| 可以免费看污视频的网站| 亚洲女初尝黑人巨高清在线观看| 欧美18性精品| 久久久久久久免费视频| 久久久成人网| 国产韩国精品一区二区三区| 久久精品成人一区二区三区| 国产极品白嫩美女在线观看看| 欧美电影免费| 午夜欧美成人香蕉剧场| 在线观看成人网| 国产国语在线播放视频| 欧美日本二区| 成人在免费观看视频国产| 美国一区二区三区| 九九久久99综合一区二区| 国产a一级| 999久久狠狠免费精品| 国产一区精品| 天天色色色| 日韩av成人| 毛片成人永久免费视频| 青青久热| 国产网站在线| 亚欧成人乱码一区二区| 日韩一级黄色| 国产网站在线| 色综合久久天天综合绕观看| 毛片电影网| 亚洲精品中文字幕久久久久久| 国产亚洲免费观看| 日本免费乱人伦在线观看| 午夜激情视频在线播放| 香蕉视频久久| 国产伦精品一区二区三区无广告| 久久精品大片| 四虎久久影院| 国产a视频| 日韩中文字幕在线观看视频| 尤物视频网站在线观看| 日本伦理网站| 四虎影视库| 色综合久久天天综合绕观看 | 欧美激情中文字幕一区二区| 国产91精品一区| 人人干人人插| 欧美18性精品| 日本在线不卡视频| 国产一区二区精品久久91| 二级特黄绝大片免费视频大片| 久久精品大片| 亚洲天堂免费| 久久久久久久免费视频| 国产精品自拍一区| 国产麻豆精品免费密入口| 国产精品自拍一区| 天天做日日爱夜夜爽| 国产成人精品综合在线| 国产91素人搭讪系列天堂| 黄视频网站在线看| 欧美激情一区二区三区在线| 沈樵在线观看福利| 一级女性全黄久久生活片| 亚洲精品中文一区不卡| 日本特黄特黄aaaaa大片| 色综合久久手机在线| 国产91素人搭讪系列天堂| 精品视频在线看 | 麻豆网站在线看| 免费毛片基地| 久久国产精品只做精品| 麻豆污视频| 免费的黄视频| 国产成人啪精品| 99色播| 91麻豆国产| 午夜激情视频在线观看| 一级毛片视频免费| 久久国产一区二区| 久久久久久久网| 国产不卡福利| 日本免费乱理伦片在线观看2018| 九九九网站| 深夜做爰性大片中文| 中文字幕97| 国产高清在线精品一区二区| 一级女性大黄生活片免费| 一级片片| 日韩男人天堂| 日韩一级黄色大片| 99久久网站| 欧美一级视| 精品视频在线看| 国产视频在线免费观看| 日韩男人天堂| 久久国产一久久高清| 成人高清免费| 国产91丝袜在线播放0| 精品国产亚洲一区二区三区| 青青久久精品| 久久久久久久免费视频| 精品在线免费播放| 亚洲精品久久玖玖玖玖| 91麻豆精品国产片在线观看| 国产一区二区精品久久91| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产a视频| 国产a视频| 亚洲第一页色| 国产成人精品影视| 久久福利影视| 九九精品影院| 亚洲女人国产香蕉久久精品| 免费的黄色小视频| 日韩欧美一二三区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 99久久精品国产高清一区二区| 黄视频网站免费| 黄视频网站在线看| 国产精品自拍一区| 国产伦精品一区三区视频| 国产伦精品一区三区视频| 美女被草网站| 亚洲爆爽| 国产网站在线| 国产91精品一区二区| 免费国产在线观看不卡| 国产91精品系列在线观看| 国产视频在线免费观看| 国产美女在线一区二区三区| 九九热国产视频| 欧美1区2区3区| 精品国产香蕉在线播出| 国产一区免费在线观看| 九九久久国产精品| 精品在线免费播放| 麻豆污视频| 国产不卡福利| 国产麻豆精品视频| 免费一级片在线观看| 国产原创视频在线| 国产麻豆精品免费密入口| 香蕉视频久久| 成人影院一区二区三区| 四虎久久影院| 青青久热| 国产激情一区二区三区| 成人免费观看视频| 夜夜操天天爽| 国产美女在线一区二区三区| 日韩一级黄色片| 你懂的国产精品| 91麻豆精品国产高清在线| 精品国产亚洲一区二区三区| 日韩字幕在线| 美女免费精品视频在线观看| 精品久久久久久中文字幕一区| 国产精品1024永久免费视频| 青青久热| 欧美另类videosbestsex高清| 欧美大片毛片aaa免费看| 四虎久久精品国产| 日韩在线观看视频免费| 国产成人精品影视| 日韩在线观看免费| 久久成人综合网| 国产麻豆精品视频| 美女免费精品视频在线观看| 国产网站免费视频| 成人a大片高清在线观看| 午夜在线亚洲男人午在线| 精品国产一区二区三区精东影业 | 一本高清在线| 国产一级强片在线观看| 99久久精品费精品国产一区二区| 韩国三级视频网站| 成人a大片高清在线观看| 欧美国产日韩在线| 精品国产一区二区三区久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 九九久久国产精品大片| 精品视频在线观看视频免费视频| 精品久久久久久免费影院| 色综合久久天天综合观看| 成人a大片高清在线观看| 黄色免费三级| 可以免费在线看黄的网站| 成人免费网站久久久| 高清一级做a爱过程不卡视频| 日韩字幕在线| 精品视频免费在线| 成人免费观看的视频黄页| 亚洲天堂免费| 日韩在线观看视频免费| 麻豆系列 在线视频| 免费的黄视频| 四虎影视库| 欧美另类videosbestsex高清 |