go语言基础 -- json的序列化

时间:2025-03-08 08:22:16
package main import( "fmt" "encoding/json" ) type Monster struct{ Name string Age int Skill string } // 结构体序列化 func serialize_struct() { monster := Monster{ Name : "niumo", Age : 500, Skill : "bajiaoshan", } // 这里传指针主要是减少拷贝 data, err := json.Marshal(&monster) if err != nil { fmt.Printf("trans to json failed") } fmt.Printf("%v", string(data)) } // map序列化 func serialize_map() { // 定义一个interface做value的的map,可以让interface存储任意类型 var a map[string]interface{} a = make(map[string]interface{}) a["zhu"] = "bajie" a["hou"] = "wukong" a["num"] = 4 // 引用类型不需要传地址 data, err := json.Marshal(a) } // 切片序列化 func serialize_slice() { var slice []map[string]interface{} var m1 map[string]interface{} m1 = make(map[string]interface{}) m1["name"] = "jack" m1["age"] = 10 m2 = make(map[string]interface{}) m2["name"] = "tom" m2["age"] = 20 slice = append(slice, m1) slice.append(slice, m2) data, err := json.Marshal(slice) } // 基本数据类型序列化 func testFloat() { var num float64 = 24.56 json.Marshal(&num) } func main() { }