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()
}