go里面json数据序列化

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();
}
原文地址:https://www.cnblogs.com/zh718594493/p/14118230.html