Найти тему
2015 подписчиков

👣 Тэги структур в Go


▶️В Go при сериализации JSON в структуру используются мета-теги, которые записываются рядом с полями структуры:
type Response2 struct {
Page int `json:"page"`
Fruits []string `json:"fruits"`
}
В данном случае это ``json:"page"`` и ``json:"fruits"``.

Но иногда, вместо JSON используются другие стандарты, BSON и др. Так вот, что делать в случае других стандартов?

▶️Сразу можно сказать, что в теге может быть несколько полей для разных стандартов, например, тут одновременно можно обращаться со структурой как с JSON, и как с YAML:
type Response2 struct {
Page int `json:"page" yaml:"page" validation:"min:1,max:10"`
Fruits []string `json:"fruits" yaml:"fruits,omitempty" validation:"nonempty"`
}

r := &Response2{}
json.Read("file.json", r)
validator.Validate(r)
yaml.Write("file.yaml", r)

⏩Также тэги можно разбирать самостоятельно и использовать в своих библиотеках, подробнее об этом тут.
⏩Дополнительно о тэгах структур почитать можно здесь.

👣 Тэги структур в Go  ▶️В Go при сериализации JSON в структуру используются мета-теги, которые записываются рядом с полями структуры: type Response2 struct { Page   int      `json:"page"` Fruits...
Около минуты