标签

结构字段可以具有与之关联的标签。reflect 包可以读取这些标签,以获取开发人员指定的关于字段的自定义信息。

struct Account {
    Username      string `json:"username"`
    DisplayName   string `json:"display_name"`
    FavoriteColor string `json:"favorite_color,omitempty"`
}

在上面的示例中,标记用于在编组或解组 JSON 时更改 encoding/json 包使用的键名。

虽然标记可以是任何字符串值,但最佳做法是使用空格分隔的 key:"value" 对:

struct StructName {
    FieldName int `package1:"customdata,moredata" package2:"info"`
}

encoding/xmlencoding/json 包一起使用的 struct 标签在整个标准库中使用。