在golang中使用neast和数组创建高级结构

时间:2015-11-16 23:28:39

标签: arrays struct go

大家好我正在努力学习golang我正在创建我自己的项目,这需要创建我很难写的结构和初始化的结构。如果有人能帮助我,我会很高兴。

 {
    "name":"message",
    "args":[
        {
            "method":"joinChannel",
            "params":{
                "channel":"CHANNEL",
                "name":"USERNAME",
                "token":"XXXX",
                "isAdmin":false
            }
        }
    ]
}

我在谷歌上寻找一些例子,但我唯一能找到的就是简单的。这就是我的想法

type Channel struct {
    Name string `json:"name"`
    Args []struct {
        Method string `json:"method"`
        Params struct {
            Channel string `json:"channel"`
            Name string `json:"name"`
            Token string `json:"token"`
            Isadmin bool `json:"isAdmin"`
        } `json:"params"`
    } `json:"args"`
}

有更透明的方式吗?

2 个答案:

答案 0 :(得分:1)

如果你想打破这些类型,而不是让这些匿名声明内联,它会是这样的;

type Channel struct {
    Name string `json:"name"`
    Args []Arg `json:"args"`
}

type Arg struct {
    Method string `json:"method"`
    Params Params `json:"params"`
}

type Params struct {
      Channel string `json:"channel"`
      Name string `json:"name"`
      Token string `json:"token"`
      Isadmin bool `json:"isAdmin"`
}


myChan := Channel{"Name", []Arg{ Arg{"Method", Params{ "Channel", "Name", "Token", true } } } }

答案 1 :(得分:0)

您可以像这样分隔嵌套结构。

http://play.golang.org/p/ghcMuFOdQC