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