代码展示
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();
}