package main import ( "encoding/json" "fmt" "reflect" ) func demo1() { txt := `{"a":1,"b":2,"c":[{"name":"1","group":"2"},{"name":"3","group":"4"}]}` var m map[string]interface{} if err := json.Unmarshal([]byte(txt), &m); err != nil { panic(err) } for _, v := range m["c"].([]interface{}) { fmt.Println(v) } } func demo2() { txt := `{"a":1,"b":2,"c":[{"name":"1","group":"2"},{"name":"3","group":"4"}]}` var m map[string]interface{} if err := json.Unmarshal([]byte(txt), &m); err != nil { panic(err) } v := reflect.ValueOf(m["c"]) count := v.Len() for i := 0; i < count; i++ { fmt.Println(v.Index(i)) } } func demo_all() { txt := `{"a":1,"b":2,"c":[{"name":"1","group":"2"},{"name":"3","group":"4"}]}` var m map[string]interface{} if err := json.Unmarshal([]byte(txt), &m); err != nil { panic(err) } for _, v := range m { fmt.Println(v) } } func main() { demo1() fmt.Println("====================") demo2() fmt.Println("====================") demo_all() }
运行结果:
[root@wangjq 333]# go run zzz.go map[name:1 group:2] map[name:3 group:4] ==================== map[group:2 name:1] map[name:3 group:4] ==================== 1 2 [map[name:1 group:2] map[name:3 group:4]]