1.代码演示
package main import ( "encoding/json" "fmt" ) //各种数据结构转化为json type Persion struct { Name string `json:"name"` //这里使用这种方式给Name别名 Age int Sex string } //将结构体转化为json func TestStu(){ pp:=Persion{ Name: "lisi", Age:20, Sex:"男", } str,_:=json.Marshal(pp);//josn,序列化 //--------------------------------------------------------- var pinfo Persion; error:=json.Unmarshal(str,&pinfo);//json反序列化 if error !=nil { fmt.Println("error"); } fmt.Println(pinfo); } //将map结构转化为json func TestMap(){ var aa map[string]interface{}; aa= make(map[string]interface{}); aa["name"]="lisi"; aa["age"]=20; aa["sex"]="男"; info,_:=json.Marshal(aa); //----------------------反序列化-------------------------- var res map[string]interface{}; error:=json.Unmarshal(info,&res); if error !=nil { fmt.Println("error is not"); } fmt.Println(res); } //切片序列化 func testSlice(){ var slice []map[string]interface{}; m1:=make(map[string]interface{}); m1["name"]="lisi"; m1["age"]=20; m1["student"]=[]int{1,2,3,43,4}; slice=append(slice,m1); m2:=make(map[string]interface{}); m2["name"]="zhangsan"; m2["age"]=30; m2["student"]=[]int{10,3,3,4,90}; slice=append(slice,m2); result,_:=json.Marshal(slice); fmt.Println(string(result)); //-------------------切片反序列化----------------------- var info []map[string]interface{}; error:=json.Unmarshal(result,&info); if error !=nil { fmt.Println("error"); } fmt.Println(info); } func main(){ //TestMap(); //TestStu(); testSlice(); }