🟡 Средний · 2 очк. JSON и сериализация
В чем разница между json.Decoder и json.Unmarshal при парсинге JSON?
A Decoder читает поток из io.Reader без загрузки всего в память; Unmarshal требует готовый []byte
B Decoder быстрее для маленьких JSON
C Unmarshal поддерживает только UTF-8; Decoder поддерживает любую кодировку
D Разницы нет, оба делают одно и то же
Объяснение вопроса

json.Unmarshal принимает загруженный []byte. json.Decoder создается от io.Reader и читает из потока по мере необходимости.

dec := json.NewDecoder(resp.Body)
for dec.More() {
    var item Item
    if err := dec.Decode(&item); err != nil { ... }
    process(item)
}

Для одного объекта в памяти достаточно Unmarshal; для длинных ответов и файлов - Decoder.

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