JSON简介


JSON数据格式

JSON数据在线解析

JSON序列化
结构体序列化
json.Marshal()
// 结构体序列化monster := Monster{"大头",105,"202019951120",5000.0,"王八拳",}fmt.Println(monster)data,err := json.Marshal(&monster)if err != nil {fmt.Println("序列化失败!")}fmt.Printf(string(data))


map序列化
//map序列化testMap := make(map[string]interface{})testMap["name"] = "大头"testMap["age"] = 150testMap["sex"] = "男"data,err = json.Marshal(testMap)fmt.Println(testMap)fmt.Println(string(data))
切片序列化
//切片序列化var testSlice []map[string]interface{}m1 := make(map[string]interface{})m1["大头"] = "good"m1["二头"] = "bad"testSlice = append(testSlice,m1)m2 := make(map[string]interface{})m2["大f头"] = "good"m2["二f头"] = "bad"testSlice = append(testSlice,m2)fmt.Println(testSlice)data , err = json.Marshal(testSlice)fmt.Println(string(data))

JSON反序列化

//反序列化操作//structstr1 := "{\"Name\":\"大头\",\"Age\":105,\"Birthday\":\"202019951120\",\"Sal\":5000,\"Skill\":\"王八拳\"}"var monster2 Monstererr = json.Unmarshal([]byte(str1),&monster2)if err != nil {fmt.Println("反序列化失败!!")}fmt.Println(monster2)fmt.Println(monster2.Name)fmt.Println()//mapstr2 := "{\"age\":150,\"name\":\"大头\",\"sex\":\"男\"}"//反序列化时不需要make,make操作被封装到 Unmarshal 函数中var map2 map[string]interface{}err = json.Unmarshal([]byte(str2),&map2)fmt.Println(map2)fmt.Println()//slicestr3 := "[{\"二头\":\"bad\",\"大头\":\"good\"}," +"{\"二f头\":\"bad\",\"大f头\":\"good\"}]"//反序列化时不需要make,make操作被封装到 Unmarshal 函数中var slice2 []map[string]interface{}err = json.Unmarshal([]byte(str3),&slice2)fmt.Println(slice2)



