Встречается на 37% собеседований по QA Manual

Что такое JSON

JSON (JavaScript Object Notation) — это текстовый формат обмена данными, основанный на синтаксисе объектов JavaScript, но независимый от языка. Он поддерживается практически всеми языками программирования и широко используется для передачи данных между сервером и клиентом, а также для хранения конфигураций и настроек.

Как это работает

JSON использует две универсальные структуры данных, которые есть в большинстве языков:

  • Коллекции пар ключ/значение — в разных языках реализуются как объекты, записи, структуры, словари, хеш-таблицы.
  • Упорядоченные списки значений — обычно это массивы, векторы или списки.

Эти структуры позволяют представлять сложные иерархические данные. JSON поддерживает следующие типы данных: строки (в двойных кавычках), числа, булевы значения (true/false), null, массивы и объекты. Вложенность объектов и массивов не ограничена, что делает формат гибким для описания практически любых структур.

Пример

json
{
  "имя": "Иван",
  "возраст": 30,
  "isDeveloper": true,
  "навыки": ["JavaScript", "React", "Node.js"],
  "контакты": {
    "email": "ivan@example.com",
    "сайт": "https://ivan.dev"
  }
}

Здесь видны все основные типы: строки, число, булево значение, массив и вложенный объект. Такой формат легко читается человеком и просто разбирается машиной.

Почему JSON популярен

  1. Простота для человека и машины — синтаксис интуитивно понятен, а парсеры и генераторы есть в стандартных библиотеках большинства языков.
  2. Широкая поддержка — JSON используется в веб-API, конфигурационных файлах (например, package.json), системах обмена сообщениями, базах данных (например, PostgreSQL, MongoDB) и многих других областях.
  3. Эффективность — будучи текстовым, JSON легко сжимается (gzip, brotli), что снижает объём передаваемых данных по сети.

Подводные камни

  • Отсутствие комментариев — в стандартном JSON нельзя добавлять комментарии, что усложняет документирование конфигурационных файлов.
  • Строгая типизация — числа не должны быть в кавычках, строки — только в двойных кавычках, лишние запятые недопустимы. Ошибки валидации часто возникают из-за этих мелочей.
  • Не поддерживает даты и специальные типы — даты обычно передаются строками в ISO-формате, а бинарные данные — через Base64.
  • Безопасность — при использовании eval для разбора JSON возможны инъекции, поэтому всегда следует использовать встроенные парсеры.

Когда использовать

JSON — оптимальный выбор для обмена данными между клиентом и сервером в REST API, для хранения настроек приложений, для передачи сообщений в микросервисной архитектуре. Он также часто применяется в NoSQL-базах данных и как формат для экспорта/импорта данных. Если требуется высокая производительность парсинга или строгая схема, стоит рассмотреть альтернативы (например, Protocol Buffers или XML со схемой), но для большинства задач JSON достаточно.

Коротко

  • JSON — текстовый формат обмена данными, основанный на парах ключ/значение и упорядоченных списках.
  • Поддерживает строки, числа, булевы значения, null, массивы и объекты; вложенность не ограничена.
  • Популярен благодаря простоте, широкой поддержке в языках и эффективности при передаче по сети.
  • Помни о строгих правилах синтаксиса (двойные кавычки, отсутствие комментариев) и используй стандартные парсеры для безопасности.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы