package main import ( "encoding/json" "fmt" ) func main() { res := make(map[string]interface{}) res["code"] = 200 res["msg"] = "success" res["data"] = map[string]interface{}{ "username": "Tom", "age": "30", "hobby": []string{"读书", "爬山"}, } fmt.Println("map data :", res) //序列化 jsons, errs := json.Marshal(res) if errs != nil { fmt.Println("json marshal error:", errs) } fmt.Println("") fmt.Println("--- map to json ---") fmt.Println("json data :", string(jsons)) //反序列化 res2 := make(map[string]interface{}) errs = json.Unmarshal([]byte(jsons), &res2) if errs != nil { fmt.Println("json marshal error:", errs) } fmt.Println("") fmt.Println("--- json to map ---") fmt.Println("map data :", res2) }
编辑和删除
package main import ( "fmt" ) func main() { person := map[int]string{ 1: "Tom", 2: "Aaron", 3: "John", } fmt.Println("data :", person) delete(person, 2) fmt.Println("data :", person) person[2] = "Jack" person[3] = "Kevin" fmt.Println("data :", person) }
概述
Map 集合是无序的 key-value 数据结构。
Map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型,key 和 value 的数据类型可以不相同。