Go語言對JSON數(shù)據(jù)進行序列化和反序列化
更新時間:2022年07月18日 14:49:45 作者:taadis
這篇文章介紹了Go語言對JSON數(shù)據(jù)進行序列化和反序列化的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
golang中對json的序列化/反序列化操作還是比較容易的,序列化操作主要是通過encoding/json包的Marshal()方法來實現(xiàn),反序列化操作主要是通過encoding/json包的Unmarshal()方法來實現(xiàn)。
//JSON序列化和反序列化
//可用在api序列化輸出
//轉(zhuǎn)成結(jié)構(gòu)體,方便程序操作等
package main
import (
"encoding/json"
"fmt"
)
type Response1 struct {
Page int
Fruits []string
}
type Response2 struct {
Page int `json:"page"`
Fruits []string `json:"fruits"`
}
func main() {
//布爾型
boolByte, _ := json.Marshal(true)
fmt.Println(string(boolByte))
//整數(shù)型
intByte, _ := json.Marshal(100)
fmt.Println(string(intByte))
//浮點型
floatByte, _ := json.Marshal(1.23456)
fmt.Println(string(floatByte))
//字符串
stringByte, _ := json.Marshal("字符串啊啊啊")
fmt.Println(string(stringByte))
//切片
sliceByte, _ := json.Marshal([]string{"apple", "orange", "banana"})
fmt.Println(string(sliceByte))
//字典
mapByte, _ := json.Marshal(map[string]int{"apple": 5, "orange": 6, "banana": 7})
fmt.Println(string(mapByte))
//自定義類型1
customsByte1, _ := json.Marshal(&Response1{Page: 1, Fruits: []string{"apple", "orange", "banana"}})
fmt.Println(string(customsByte1))
//自定義類型2,tag語法
customsByte2, _ := json.Marshal(&Response2{Page: 2, Fruits: []string{"apple", "orange", "banana"}})
fmt.Println(string(customsByte2))
//反序列化到結(jié)構(gòu)體
json1 := `{"Page":1,"Fruits":["apple","orange","banana"]}`
json2 := `{"page":2,"fruits":["apple","orange","banana"]}`
response1 := Response1{}
response2 := Response2{}
json.Unmarshal([]byte(json1), &response1)
fmt.Println(response1)
json.Unmarshal([]byte(json2), &response2)
fmt.Println(response2)
}到此這篇關(guān)于Go語言對JSON數(shù)據(jù)進行序列化和反序列化的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Golang使用singleflight解決并發(fā)重復請求
高并發(fā)的場景下,經(jīng)常會出現(xiàn)并發(fā)重復請求資源的情況,singleflight是golang內(nèi)置的一個包,這個包提供了對重復函數(shù)調(diào)用的抑制功能,所以下面我們就來看看如何使用它解決并發(fā)重復請求吧2023-08-08
使用gRPC實現(xiàn)獲取數(shù)據(jù)庫版本
這篇文章主要為大家詳細介紹了如何使用gRPC實現(xiàn)獲取數(shù)據(jù)庫版本,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下2023-12-12
Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式
這篇文章主要介紹了Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Golang關(guān)鍵字select的常用用法總結(jié)
這篇文章主要為大家詳細介紹了golang中select關(guān)鍵字的常用用法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-10-10

