将JSON数组值映射到结构特定变量

Let's say I have this JSON structure:

{
"name":"repo",
"tags":["1.0","2.0","3.0"]
}

And I would like to map it to this Go struct:

type Repository struct {
    Name string `json:"name"`
    Tags []struct {
        Tag   string `json:"??"`
        Sha256 string
    }
}

How can I link the "tags" array JSON value to a struct field?

EDIT: The idea will be to access the tags array value like this repository.Tags[0].Tag.

Implement json.Unmarshaler on a Tag type:

package main

import (
    "encoding/json"
    "log"
)

type Repository struct {
    Name string
    Tags []Tag
}

type Tag struct {
    Tag    string
    Sha256 string
}

func (t *Tag) UnmarshalJSON(b []byte) error {
    var s string

    if err := json.Unmarshal(b, &s); err != nil {
            return err
    }

    t.Tag = s
    return nil
}

func main() {
    b := []byte(`{ "name":"repo", "tags":["1.0","2.0","3.0"] }`)

    var r Repository
    err := json.Unmarshal(b, &r)
    if err != nil {
            log.Fatal(err)
    }

    log.Printf("%+v
", r)
}

Try it on the playground: https://play.golang.org/p/ExwWhis0w0V

Marshaling back to JSON is left as an exercise for the reader.