當前位置:
首頁 > 知識 > Go 中 JSON 的序列化和反序列化

Go 中 JSON 的序列化和反序列化

golang中對json的序列化/反序列化操作還是比較容易的,

序列化操作主要是通過encoding/json包的Marshal()方法來實現,

反序列化操作主要是通過encoding/json包的Unmarshal()方法來實現.

//JSON序列化和反序列化
//可用在api序列化輸出
//轉成結構體,方便程序操作等
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))
//整數型
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))
//反序列化到結構體
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)
}

Go 中 JSON 的序列化和反序列化

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

分表分庫時機選擇及策略
SpringBoot應用不能訪問項目靜態頁面html問題處理

TAG:程序員小新人學習 |