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

Hi guys I am trying to learn golang I am creating my own project which requires to create structure that I have hard times to write and initalized. I would be greatful if anyone can help me out with it.

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

I was looking for some examples on google but only thing I could find was easie ones. This is what I came up

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"`
}

Is there more transparent way to do it?

If you wanted to break the types out rather than having those anonymous declarations inline it would look like this;

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 } } } }

You can separate nested struct like this.

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