zoukankan      html  css  js  c++  java
  • 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();
    }
  • 相关阅读:
    Linq to Sql学习总结1
    SQL相关
    C#各种小知识点总结
    Ext.Net学习笔记
    ASP.NET MVC3入门学习总结
    leetcode-剑指67-OK
    leetcode-剑指44-OK
    leetcode-剑指51-OK
    leetcode-剑指32-III-OK
    leetcode-剑指49-OK
  • 原文地址:https://www.cnblogs.com/zh718594493/p/14118230.html
Copyright © 2011-2022 走看看