🟡 Средний · 2 очк. JSON и сериализация
Зачем нужны кастомные MarshalJSON и UnmarshalJSON и как их реализовать в Go?
A Чтобы переопределить формат сериализации типа (например, время или enum по строке)
B Чтобы ускорить стандартный json.Marshal
C Чтобы автоматически сжимать большие строки при сериализации
D Чтобы включить приватные поля в JSON без тегов
Объяснение вопроса

Тип реализует интерфейс json.Marshaler (метод MarshalJSON() ([]byte, error)) или json.Unmarshaler (метод UnmarshalJSON([]byte) error). Пакет encoding/json вызывает эти методы вместо стандартной логики.

Типичные случаи: кастомный формат времени, сериализация enum по строковому значению, маппинг полей.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.