JSON-теги и кастомная сериализация в Go.

Ответ

Теги: json:"fieldname", omitempty, - (игнор). Кастомная сериализация: реализовать json.Marshaler и json.Unmarshaler (методы с указателем на тип). Для типа Time часто оборачивают в свой тип с нужным форматом. Для сложных правил можно использовать интерфейсы и type switch при unmarshal.

func (t Time) MarshalJSON() ([]byte, error) {
    return json.Marshal(t.Format(time.RFC3339))
}
func (t *Time) UnmarshalJSON(data []byte) error { ... }
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.