用计算键进入结构

How can I create a struct for the following data structure in Go?

{
    "description": String,
    "public":      Boolean,
    "files": {
        "some_filename.txt": {
            "contents": String
        }
    }
}

I have started with the following:

type File struct {
    // stuck here?
}

type Payload struct {
    Description string
    Public      bool
    Files       File
}

Any help with using this for a HTTP post request would be greatly appreciated.

Use a map when the key is not known a compile time:

type File struct {
    Contents string
}

type Payload struct {
    Description string
    Public      bool
    Files       map[string]*File
}

https://play.golang.org/p/9KNvHToXG3