zoukankan      html  css  js  c++  java
  • golang学习笔记 --- struct 嵌套

    定义结构体

    type Btn struct{
      Name string  `json:"name"`
      Type string  `json:"type"`
      Url string   `json:"url"`
      Sub_button  []Btn  `json:"sub_button,omitempty"` //值为空时 直接忽略
      UnShow string `json"-"`  //忽略字段
    }
    
    type menu struct{
      Button []Btn   `json:"button"`
    }

    结构体命名需要大写 才会导出到json串中, 可以通过 struct tag 设置导出的别名, 可以通过 omitempty 忽略值为空的字段

    示例:

    package main
    
    import (
        "encoding/json"
        "fmt"
    )
    
    type Btn struct {
        Name       string `json:"name"`
        Type       string `json:"type"`
        Url        string `json:"url"`
        Sub_button []Btn  `json:"sub_button,omitempty"` //值为空时 直接忽略
        UnShow     string `json"-"`                     //忽略字段
    }
    
    type Menu struct {
        Button []Btn `json:"button"`
    }
    
    func main() {
        jsonData := Menu{
            Button: []Btn{
                {Name: "home", Type: "view", Url: "https://www.qq.com/auth"},
                {Name: "tool", Sub_button: []Btn{
                    {Name: "a1", Type: "view", Url: "https://www.qq.com/a1"},
                    {Name: "a2", Type: "view", Url: "https://www.qq.com/a2"},
                    {Name: "a3", Type: "view", Url: "https://www.qq.com/a3"},
                }},
                {Name: "other", Sub_button: []Btn{
                    {Name: "a1", Type: "view", Url: "https://www.qq.com/a1"},
                    {Name: "a2", Type: "view", Url: "https://www.qq.com/a2"},
                    {Name: "a3", Type: "view", Url: "https://www.qq.com/a3"},
                }},
            },
        }
    
        str, err := json.Marshal(jsonData)
        if err != nil {
            panic(err)
        }
        fmt.Println(string(str))
    
    }
  • 相关阅读:
    spark源码阅读之network(2)
    LoadRunner使用问题
    IDEA小技巧:添加代码快捷方式
    ByteUnit
    利用python列出当前目录下的所有文件
    python识别图片中的信息
    2019年3月2日-小雨.md
    2019年3月1日-日记
    2019年2月11日-日记
    2019年2月10日-日记
  • 原文地址:https://www.cnblogs.com/saryli/p/13390567.html
Copyright © 2011-2022 走看看