Go Structs Tags


Struct fields can have tags associated with them. These tags can be read by the reflect package to get custom information specified about a field by the developer.

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

In the above example, the tags are used to change the key names used by the encoding/json package when marshaling or unmarshaling JSON.

While the tag can be any string value, it's considered best practice to use space separated key:"value" pairs:

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

The struct tags used with the encoding/xml and encoding/json package are used throughout the standard libarary.