• []interface 接口类型转自定义结构体类型


    话不多少,直接上代码

    package main
    
    import (
        "encoding/json"
        "fmt"
    )
    
    type CategoryType struct {
        CategoryID int `json:"category_id"`
        Type       int `json:"category_type"`
    }
    
    func main() {
        var category []CategoryType
        var categoryInter interface{}
        //categoryInter 这里的值其实是通过前端请求传进来的,如下所示,这样子的结构
        /*
                {"categorys": [
                    {
                        "category_id": 1,
                        "category_type": -1
                    },{
                        "category_id": 10,
                        "category_type": -1
                    },{
                        "category_id": 7,
                        "category_type": 0
                    },{
                        "category_id": 8,
                        "category_type": 0
                    }
                ]}
    
                body, _ := ioutil.ReadAll(r.Body)
                defer r.Body.Close()
                reqJSON, err := simplejson.NewJson(body)
                categoryInter, _ := reqJSON.Get("categorys").Array()
        */
        //通过如下使用json序列化后转为对应的自定义结构
        c, err := json.Marshal(categoryInter)
        if err != nil {
            fmt.Println(err)
        }
        err = json.Unmarshal(c, &category) //此时这里category的数据类型是上方定义的[]CategoryType类型
        if err != nil {
            fmt.Println(err)
        }
    
        // 输出
        //  [ { 1, -1 },{ 10, -1 },{ 7, 0 },{ 8, 0 } ]
    }
  • 相关阅读:
    Yii together
    linux 文件处理大杂烩
    Ubuntu 17.10 环境初始化
    关掉 ubuntu bug 报告功能
    git svn 流程
    [Mac] How do I move a window whose title bar is off-screen?
    可爱的Python_课后习题_CDay−5 Python 初体验和原始需求
    python_编程规范
    python_excel
    python_os
  • 原文地址:https://www.cnblogs.com/s42-/p/14603047.html
Copyright © 2020-2023  润新知