package main import ( " encoding / json " "fmt" ) //必须对外可以访问 public type JsonOne struct { Title string ; Server []string ; } //必须对外可以访问 public type UU struct { Key []interface{} `json:"key"` } func main() { //案例一 s:="{\"s1\":[\"天际之战测试\",[\"192.168.6.180:9624\",\"192.168.6.180:9624\"]]}"; fmt.Println("A 第一种.....") m:=map[string][]interface{}{}; es:=json.Unmarshal([]byte(s),&m); if(es!= nil ){ fmt.Println(es); } fmt.Println(m["s1"][0]); fmt.Println(m["s1"][1]); sss:=m["s1"][1]; cc:=sss.([]interface{}) fmt.Println(cc[1]); //案例二 s1:="[232,\"werw\",{\"key\":[23,\"成都\"]}]" fmt.Println("B 第一种.........") //第一种 mm:=make([]interface{},0); ee:=json.Unmarshal([]byte(s1),&mm); if(ee!=nil){ fmt.Println(ee); } fmt.Println(mm[0]); fmt.Println(mm[1]); mm2:=mm[2].(map[string]interface{}); mm2v:=mm2["key"].([]interface{}); fmt.Println(mm2v[0]); fmt.Println(mm2v[1]); fmt.Println("B 第二种.........") //第二种 mm1:=make([]interface{},0); ee1:=json.Unmarshal([]byte(s1),&mm1); if(ee1!=nil){ fmt.Println(ee); } fmt.Println(mm1[0]); fmt.Println(mm1[1]); fmt.Println(mm1[2]); sssrt,eee:=json.Marshal(mm1[2]); fmt.Println(string(sssrt)); if(eee==nil) { u:=new(UU); json.Unmarshal([]byte(string(sssrt)), u); fmt.Println(u.Key[0]); fmt.Println(u.Key[1]); } }
打印输出:
A 第一种..... 天际之战测试 [192.168.6.180:9624 192.168.6.180:9624] 192.168.6.180:9624 B 第一种......... 232 werw 23 成都 B 第二种......... 232 werw map[key:[23 成都]] {"key":[23,"成都"]} 23 成都