/** json 序列化的三种方式 */ //定义一个结构体 type Person struct { Name string `json:"nickName"` Age int `json:"age"` Birthday string Sal float64 Skill string } func testStruct() { //演示 person :=Person{ Name: "老zhou", Age: 43, Birthday: "1982-11-11", Sal: 8000.0, Skill: "爱狗叫", } //将 monster 序列化 data, err := json.Marshal(&person) if err != nil { fmt.Printf("序列号错误 err=%v\n", err) } //输出序列化后的结果 fmt.Printf("person 序列化后=%v\n", string(data)) } func testMap() { //定义一个 map var a map[string]interface{} //使用 map,需要 make a = make(map[string]interface{}) a["name"] = "老王" a["age"] = 30 a["address"] = "隔壁" //将 a 这个 map 进行序列化 //将 monster 序列化 data, err := json.Marshal(a) if err != nil { fmt.Printf("序列化错误 err=%v\n", err) } //输出序列化后的结果 fmt.Printf("a map 序列化后=%v\n", string(data)) } func testSlice() { var slice []map[string]interface{} var m1 map[string]interface{} //使用 map 前,需要先 make m1 = make(map[string]interface{}) m1["name"] = "赵本山" m1["age"] = "64" m1["address"] = "铁岭" slice = append(slice, m1) var m2 map[string]interface{} //使用 map 前,需要先 make m2 = make(map[string]interface{}) m2["name"] = "许嵩" m2["age"] = "18" m2["address"] = [2]string{"安徽", "合肥"} slice = append(slice, m2) //将切片进行序列化操作 data, err := json.Marshal(slice) if err != nil { fmt.Printf("序列化错误 err=%v\n", err) } //输出序列化后的结果 fmt.Printf("slice 序列化后=%v\n", string(data)) } func testFloat64() { var num1 float64 = 2345.67 //对 num1 进行序列化 data, err := json.Marshal(num1) if err != nil { fmt.Printf("序列化错误 err=%v\n", err) } //输出序列化后的结果 fmt.Printf("num1 序列化后=%v\n", string(data)) }