1. 程式人生 > 其它 >Golang 結構體、map、切片的序列化

Golang 結構體、map、切片的序列化

1.結構體序列化

package main

import (
    "encoding/json"
    "fmt"
)

//定義一個結構體
type Monster struct {
    Name string
    Age int
    Birthday string
    Sal float64
    skill string
}
func testStruct(){
    monster := Monster{
        Name : "牛魔王",
        Age : 500,
        Birthday : "2021-11-11",
        Sal : 
80000.0, skill : "牛魔拳", } //將monster 序列化 data, err :=json.Marshal(&monster) if err !=nil{ fmt.Printf("序列化錯誤 err=%v\n",err) } //輸出序列化結果 fmt.Printf("manster序列化後=%v",string(data)) } func main(){ //演示結構體序列化 testStruct() }

2.map序列化

package main

import (
    
"encoding/json" "fmt" ) //將map進行序列化 func testMap() { //定義一個Map var a map[string]interface{} //使用map,需要make a = make(map[string]interface{}) a["name"] = "紅孩兒" a["age"] = 30 a["address"] = "火雲洞" //將a這個map進行序列化 data, err := json.Marshal(a) if err != nil { fmt.Printf(
"序列化錯誤 err=%v", err) } //輸出序列化後的結果 fmt.Printf("monster序列化後=%v\n", string(data)) } func main() { //演示map序列化 testMap() }

3.slice切片序列化

package main

import (
    "encoding/json"
    "fmt"
)

//對切片進行序列化,我們這個切片 []map[string]interface{}
func testSlice() {
    var slice []map[string]interface{}
    var m1 map[string]interface{}
    //使用map前需要make
    m1 = make(map[string]interface{})
    m1["name"] = "jack"
    m1["age"] = "7"
    m1["address"] = "北京"
    slice = append(slice, m1)

    var m2 map[string]interface{}
    //使用map前需要make
    m2 = make(map[string]interface{})
    m2["name"] = "tom"
    m2["age"] = "20"
    m2["address"] = "上海"
    slice = append(slice, m2)

    data, err := json.Marshal(slice)
    if err != nil {
        fmt.Printf("序列化錯誤 err=%v", err)
    }
    //輸出序列化後的結果
    fmt.Printf("slice序列化後的結果=%v\n", string(data))
}
func main() {
    testSlice()
}