К содержанию

Главная · Блог · JSON: что это, как открыть и где используется

Оставить заявку

Новый формат

JSON: что это, как открыть и где используется

JSON (JavaScript Object Notation) — текстовый формат для обмена структурированными данными между программами и языками. Родом из экосистемы JavaScript, но сам по себе от языка не зависит: его читают Python, PHP, Go, мобильные приложения и API.

Ниже — зачем JSON на сайтах, как устроен синтаксис, чем открыть файл и почему нельзя «скормить» чужой ответ в `eval`. Списки версий IE и старых редакторов опускаем как устаревший шум.

Поделиться
Telegram VK

Где применяют JSON

Классика веба: браузер запрашивает данные у сервера (Ajax / `fetch`), получает JSON и обновляет страницу без полной перезагрузки — лента, каталог, корзина, дашборд.

Также: REST/GraphQL-ответы, конфиги фронта, локальное хранение настроек, обмен между микросервисами и мобильным клиентом.

Типичные сценарии:

  • API сайта и мобильного приложения;
  • подгрузка блоков без reload;
  • выгрузки и интеграции;
  • конфиги инструментов разработки.

HTTP-заголовки

Синтаксис: объекты и массивы

Два каркаса: объект `{ "ключ": значение }` и массив `[ значение1, значение2 ]`. Ключ объекта — строка в кавычках. Значения: строка, число, `true`/`false`, `null`, вложенный объект или массив.

Телефон и ведущие нули храните строкой: `"84959000000"`, не числом — иначе потеряете формат. После последнего элемента запятую в строгом JSON не ставят.

Пробелы и переносы для людей удобны; по сети часто отдают компактную однострочную версию — смысл тот же.

Частые ошибки новичка:

  • одинарные кавычки вместо двойных;
  • запятая после последнего поля;
  • комментарии `//` в строгом JSON;
  • числа там, где нужна строка (телефон, артикул).

Практика

Перед отдачей JSON в API

Строгий синтаксис спасает интеграции.

0 / 6 готово

Ajax, API и безопасность

Клиент запрашивает URL, сервер отвечает телом JSON и заголовком вроде `Content-Type: application/json`. В современном JS достаточно `fetch` + `response.json()` — без `eval`.

Исторические обходы same-origin (JSONP, вставка `<script>`) расширяли поверхность атак. Для новых проектов — CORS и обычный JSON по HTTPS.

Никогда не выполняйте чужой JSON как код. Парсите штатным парсером и валидируйте поля на сервере, если данные пишутся в БД или влияют на права.

Правила безопасности:

  • только `JSON.parse` / аналог языка;
  • не доверять полям с клиента без проверки;
  • HTTPS для чувствительных ответов;
  • не класть секреты в публичный JSON фронта.

Безопасность сайта

Проверьте себя

Мини-тест: JSON

Два вопроса.

1 Разбор чужого JSON через eval…
2 JSON — это…

Чем открыть и править .json

Файл — обычный текст в кодировке UTF-8. Хватает VS Code, Cursor, Notepad++, Sublime или системного `.txt`-редактора. IDE подсветят скобки и подскажут ошибку синтаксиса.

Тяжёлые «комбайны» вроде старых XML-редакторов не обязательны. Для быстрой проверки удобны встроенный форматтер редактора и онлайн-валидаторы — не вставляйте туда секреты из продакшена.

Практичный минимум:

  • редактор с подсветкой JSON;
  • формат «Pretty print» для чтения;
  • валидация перед выкладкой фида/конфига;
  • дифф в git, а не правка «на сервере вслепую».

YML-файл для Маркета

Частые вопросы

JSON — это язык программирования?

Нет. Это формат данных: объекты, массивы, строки, числа, boolean, null. Код на нём не пишут — им обмениваются.

Чем отличается от XML?

Обычно компактнее и проще для JS/API. XML сильнее в схемах и смешанном контенте с разметкой. Для веб-API сегодня чаще JSON.

Как открыть файл .json?

Любым текстовым редактором или IDE с подсветкой. В браузере — расширение/viewer или вставка в онлайн-валидатор. Для продакшена удобнее редактор с форматтером.

Можно ли парсить JSON через eval?

Нельзя в реальных проектах. Используйте `JSON.parse` / штатные парсеры языка. `eval` исполняет код и открывает XSS/инъекции.

Что такое JSON5?

Расширение с комментариями и более мягким синтаксисом. Удобно в конфигах людей; для обмена по API обычно остаётся строгий JSON.

Путаетесь в JSON и API?

Разберём формат и безопасный разбор ответов — без eval и устаревших трюков.

Обсудить задачу