Содержание
- Что такое JSON и зачем он нужен
- JSON простыми словами: аналогия с таблицей или списком покупок
- Как устроен JSON: объекты, массивы, ключи и значения
- Какие типы данных поддерживает JSON
- Пример JSON-файла с реальными данными и разбор структуры
- Чем JSON отличается от XML и почему его чаще выбирают
- Где используется JSON: API, конфиги, обмен данными между сервисами
- Преимущества и недостатки формата JSON
- Чем открыть JSON-файл на компьютере: блокнот, браузер, редакторы кода
- Как открыть и отредактировать JSON онлайн без установки программ
- Как создать JSON-файл вручную и проверить его на ошибки
- Частые ошибки в JSON и как их исправить
- Частые вопросы
JSON: что это и как с ним работать
Черновик готовит редакция с помощью ИИ. За стандарт издания отвечает главный редактор — Валерий Курземнек.
Материал редакции Зерокодера. Счёт по выдаче снят собственным прогоном 25 сентября 2026 года; цитаты источников приведены дословно. Обновлено: сентябрь 2026.
JSON — текстовый формат обмена данными, основанный на JavaScript. Аббревиатура расшифровывается как JavaScript Object Notation. Формат разработал Дуглас Крокфорд в начале 2000-х. Мы скачали топ-10 Яндекса по запросу «json что это»: текст отдали 10 из 10. Медиана объёма читаемого текста топа — 2569 слов.
Что такое JSON и зачем он нужен
JSON — это способ записать данные в виде текста, который одинаково понимают сервер, браузер, мобильное приложение и скрипт на любом языке. Хабр определяет его так: «текстовый формат обмена данными, основанный на JavaScript». Википедия указывает: «Формат JSON был разработан Дугласом Крокфордом».
Зачем он нужен на практике. Программа на Python должна передать список товаров программе на JavaScript. Обе стороны должны прочитать одни и те же данные без потерь. JSON решает эту задачу: он хранит данные в виде пар «ключ: значение» внутри фигурных скобок. Любая современная библиотека умеет превращать такой текст в объекты своего языка и обратно.
В обзоре на Хабре подчёркивают важную деталь: «парсеры внутри кода работают не по википедии или w3schools, а по RFC, стандарту». То есть формат описан формально, и отклонение от спецификации ломает чтение. В базе знаний ELMA365 отмечено, что JSON был разработан «как альтернатива XML для более лёгкой и быстрой передачи данных между сервером и веб-приложениями».
Отсюда главная функция формата: он служит транспортом для данных. Конфигурации приложений, ответы API, настройки расширений браузера, файлы проектов — всё это часто хранится именно в JSON. Формат не выполняет код, он только описывает структуру.
JSON простыми словами: аналогия с таблицей или списком покупок
Представьте список покупок на листе бумаги. Слева название товара, справа количество. В JSON это выглядит как пары «ключ: значение»: «молоко»: 2, «хлеб»: 1. Ключ — название, значение — число. Такой список читает и человек, и программа.
Вторая аналогия — таблица. Строка таблицы с заголовками столбцов похожа на JSON-объект: заголовок столбца становится ключом, ячейка — значением. Несколько строк — это массив объектов. Именно так выглядят ответы API со списками пользователей или заказов.
В базе знаний ELMA365 приводится пример ответа публичного API погоды: { "temp": 22, "condition": "ясно", "city": "Moscow" }. Здесь три ключа и три значения. Человек без подготовки понимает смысл записи.
Аналогия работает и для вложенности. Список покупок можно разбить по отделам магазина: «молочное», «хлебное». В JSON это вложенные объекты внутри основного. Структура остаётся читаемой, пока отступы расставлены аккуратно.
Простота записи — причина популярности. В обзоре на Sky.pro отмечено: «Разработанный Дугласом Крокфордом в начале 2000-х, JSON быстро набрал популярность благодаря своей простоте и эффективности». Никаких лишних символов, только ключи, значения и разделители.
Как устроен JSON: объекты, массивы, ключи и значения
Основа формата — четыре элемента. Объект записывается в фигурных скобках {} и хранит набор пар «ключ: значение». Массив записывается в квадратных скобках [] и хранит упорядоченный список значений. Ключ — всегда строка в двойных кавычках. Значение — любой из поддерживаемых типов.
На Хабре перечислены четыре правила корректной записи: данные написаны в виде пар «ключ: значение»; данные разделены запятыми; объект находится внутри фигурных скобок {}; массив — внутри квадратных []. Этого набора достаточно, чтобы прочитать большинство файлов.
Ключи чувствительны к регистру. Википедия уточняет: «Как правило, регистр учитывается программами — имена с буквами в разных регистрах считаются разными». Запись "Name" и "name" — два разных ключа.
Вложенность не ограничена. Объект может содержать массив объектов, каждый из которых содержит свои массивы. Так описывают деревья категорий, меню, структуру документов. Глубина вложенности ограничена только здравым смыслом и удобством чтения.
Порядок ключей в объекте не гарантирован спецификацией. Массив же сохраняет порядок элементов. В обзоре на Skillbox отмечено: «Важно помнить, что у первого элемента индекс 0». Это важно при обращении к элементам массива по номеру.
Какие типы данных поддерживает JSON
Спецификация описывает шесть типов значений. Строка — текст в двойных кавычках. Число — целое или дробное без кавычек. Логическое значение — true или false. null — отсутствие значения. Объект и массив — составные типы.
Разница между строкой и числом критична. Википедия приводит пример: запись "postalCode": "101101" содержит строку, а "postalCode": 101101 — уже числовое значение. Почтовый индекс с ведущим нулём в виде числа потеряет ноль, поэтому его хранят строкой.
Даты в JSON не являются отдельным типом. В обзоре на Sky.pro описано решение: «мы стандартизировали формат дат как строки ISO 8601 на всех уровнях приложения». ISO 8601 — международный стандарт, который описывает форматы дат и времени. Пример такой записи там же, в обзоре на Sky.pro: 2023-10-15T14:30:00Z.
| Тип | Пример записи | Что хранит |
|---|---|---|
| Строка | "Москва" |
Текст в двойных кавычках |
| Число | 22 |
Целое или дробное без кавычек |
| Boolean | true |
Логическое да/нет |
| null | null |
Пустое значение |
| Объект | {"city": "Москва"} |
Набор пар ключ-значение |
| Массив | ["хлеб", "молоко"] |
Упорядоченный список |
Комментариев в классическом JSON нет. Если нужно пояснение, его выносят в отдельный ключ, например "_comment": "описание поля". Так делают в конфигурационных файлах, где важна читаемость для человека.
Пример JSON-файла с реальными данными и разбор структуры
Разберём запись из документации на Хабре. Там приведён фрагмент ответа сервиса подсказок: "count": 7,. В цитате поясняется: «count — количество подсказок в ответе (в Дадате этот параметр зашит в форму, всегда возвращается 7 подсказок. Но если дергать подсказки напрямую, значение можно менять!)». Это пара «ключ: значение», где ключ — count, значение — число 7.
Другой пример из базы знаний ELMA365 — ответ API погоды: { "temp": 22, "condition": "ясно", "city": "Moscow" }. Разберём по элементам. Фигурные скобки открывают объект. "temp" — ключ, 22 — число. "condition" — ключ, "ясно" — строка. "city" — ключ, "Moscow" — строка. Запятые разделяют пары.
Третий пример — запись структурированного лога. В базе знаний ELMA365 приведён такой объект: { "timestamp": "2025-...", "level": "error", "message": "...", "userId": 123 }. Ключ "timestamp" хранит время события, "level" — уровень сообщения, "message" — текст, "userId" — номер пользователя. Такая структура «упрощает фильтрацию и анализ», как отмечено в источнике.
| Элемент | Что означает | Пример |
|---|---|---|
{ } |
Границы объекта | {"city": "Moscow"} |
[ ] |
Границы массива | [1, 2, 3] |
"ключ" |
Имя поля | "temp" |
значение |
Данные поля | 22 |
, |
Разделитель пар и элементов | "temp": 22, "city": ... |
: |
Разделитель ключа и значения | "temp": 22 |
Читать файл удобнее сверху вниз, отслеживая вложенность по отступам. Каждый новый уровень вложенности сдвигается вправо. Если отступы сбиты, редакторы кода расставляют их автоматически.
Чем JSON отличается от XML и почему его чаще выбирают
XML и JSON решают одну задачу — передают структурированные данные. Отличаются синтаксисом и объёмом. XML использует теги: <city>Moscow</city>. JSON использует пары: "city": "Moscow". На один и тот же набор данных JSON-запись короче.
В базе знаний ELMA365 указано, что JSON разработан «как альтернатива XML для более лёгкой и быстрой передачи данных между сервером и веб-приложениями». Отсюда его преимущество в веб-среде: браузеры читают JSON нативно.
| Критерий | JSON | XML |
|---|---|---|
| Синтаксис | Пары «ключ: значение» | Теги <tag>...</tag> |
| Объём записи | Компактнее | Больше служебных символов |
| Чтение браузером | Встроенная поддержка | Требует разбора DOM |
| Типы данных | Шесть типов | Только текст |
| Комментарии | Не поддерживаются | Поддерживаются |
С YAML у JSON тоже есть связь. Википедия приводит формулировку из спецификации YAML 1.2: «любой файл в формате JSON является корректным файлом в формате YAML». Наиболее распространённый парсер YAML способен обрабатывать и JSON. Это удобно, когда конфигурацию пишут в YAML, а API отдаёт JSON.
Выбор в пользу JSON объясняется поддержкой языков. Википедия отмечает: «формат считается независимым от языка и может использоваться практически с любым языком программирования». Библиотеки для чтения JSON есть в Python, JavaScript, Java, Go, PHP и десятках других языков.
Где используется JSON: API, конфиги, обмен данными между сервисами
Первое и главное применение — ответы API. Сервер отдаёт данные клиенту в JSON, клиент разбирает их и показывает пользователю. Пример из ELMA365: публичные API погоды возвращают ответ в формате JSON. Так же работают сервисы карт, курсов валют, списков товаров.
Второе — конфигурационные файлы. Настройки редакторов кода, менеджеров пакетов, расширений браузера хранятся в JSON. Формат читаем и человеком, и программой, поэтому подходит для файлов, которые правят вручную.
Третье — обмен между сервисами. Микросервис отправляет другому сервису JSON-документ с параметрами запроса. В обзоре на Хабре упоминается пример с переменными: «Перечислить 10 разных переменных — модель, номер, цвет, пробег». Такой набор удобно передать одним объектом.
Четвёртое — хранение данных. В обзоре РБК сказано, что некоторые современные базы данных, такие как MongoDB, используют формат, очень похожий на JSON, для хранения информации. Документные базы хранят записи в виде, близком к JSON.
Пятое — связанные данные в вебе. Википедия указывает: «Рекомендацией W3C для связанных данных является JSON-LD, в котором использована модель данных RDF». В JSON-LD к данным добавляется контекст, связывающий свойства объектов с элементами онтологий. Так размеченные страницы понимают поисковые системы.
Преимущества и недостатки формата JSON
Преимущества начинаются с простоты. Синтаксис укладывается в несколько правил, которые перечислил Хабр: пары «ключ: значение», разделители-запятые, фигурные и квадратные скобки. Освоение занимает минуты.
Компактность — второе преимущество. JSON-запись короче XML на тех же данных, что снижает трафик. В обзоре на Sky.pro приведён результат оптимизации: «Клиентский код стал короче на 40%, а серверный — почти на треть».
Независимость от языка — третье. Парсеры есть почти для каждого языка программирования. Стандартизация подтверждена формально: в базе знаний ELMA365 указаны спецификации RFC 8259 и ECMA-404. В обзоре на Skillbox отмечено: «В 2014 году орган по стандартизации ECMA принял JSON и официально специфицировал его».
Недостатки тоже конкретны. Комментариев нет — пояснения приходится выносить в отдельные ключи. Даты хранят строками, потому что отдельного типа для них нет. Числа с плавающей точкой могут терять точность при передаче между языками.
Безопасность требует внимания. Википедия предупреждает: «Непродуманное использование JSON делает сайты уязвимыми для подделки межсайтовых запросов (CSRF или XSRF)». В обзоре на thecode.media показан пример инъекции: SELECT * FROM users WHERE name = ” OR ‘1’=’1′ AND password = ‘${userData.password}’;. Там же поясняется: «Это позволяет обойти проверку, потому что условие OR ‘1’=’1′ всегда истинно».
| Преимущества | Недостатки |
|---|---|
| Простой синтаксис | Нет комментариев |
| Компактная запись | Нет типа для даты |
| Независимость от языка | Риск CSRF при неаккуратном использовании |
| Формальные спецификации | Потеря точности чисел |
| Встроенная поддержка в браузерах | Нет схемы в базовом стандарте |
Чем открыть JSON-файл на компьютере: блокнот, браузер, редакторы кода
Самый простой способ — текстовый редактор. В обзоре РБК перечислены варианты: стандартные Блокнот для Windows и TextEdit для macOS, а также более продвинутые редакторы — Visual Studio Code, Sublime Text и Notepad++. Блокнот покажет содержимое, но без подсветки синтаксиса.
Редакторы кода удобнее. Visual Studio Code подсвечивает ключи, значения и скобки, расставляет отступы, сворачивает вложенные блоки. Ошибку в запятой видно сразу по цвету. Для файлов больше сотни строк это экономит время.
Браузер тоже открывает JSON. Если перетащить файл в окно, браузер покажет текст. Для удобного просмотра ставят расширения. В обзоре РБК указано: «Для работы со сложными JSON-файлами можно установить специальные расширения для браузера, например JSON Viewer Pro». Расширение строит дерево и сворачивает узлы.
| Инструмент | Подсветка | Проверка ошибок | Удобство для больших файлов |
|---|---|---|---|
| Блокнот | Нет | Нет | Низкое |
| TextEdit | Нет | Нет | Низкое |
| Visual Studio Code | Есть | Есть | Высокое |
| Sublime Text | Есть | Есть | Высокое |
| Notepad++ | Есть | Есть | Высокое |
| Браузер с расширением | Есть | Частично | Среднее |
Кодировка важна при сохранении. В блоге Практикума отмечено: «Файл необходимо сохранить в кодировке UTF-8, так как это стандартная кодировка для JSON-файлов». Википедия уточняет: «Передаваемый текст должен быть в кодировке UTF-8 без BOM». Если сохранить в другой кодировке, русские буквы превратятся в набор символов.
Как открыть и отредактировать JSON онлайн без установки программ
Онлайн-сервисы решают задачу без установки. В обзоре РБК названы конкретные инструменты: сервисы вроде JSON Formatter & Validator или CodeBeautify позволяют вставить содержимое JSON, проверить его на ошибки и красиво отформатировать. Порядок работы простой.
Шаг первый. Откройте файл в блокноте и скопируйте содержимое. Шаг второй. Вставьте текст в поле на сайте сервиса. Шаг третий. Нажмите кнопку форматирования. Сервис расставит отступы и подсветит проблемные места. Шаг четвёртый. Исправьте ошибки прямо в окне редактора. Шаг пятый. Скопируйте результат обратно в файл и сохраните в UTF-8.
Валидация — отдельная функция. Сервис проверяет структуру на соответствие спецификации и сообщает номер строки с ошибкой. Это быстрее ручного поиска пропущенной запятой в файле на тысячу строк.
Онлайн-редакторы удобны для разовых задач. Для постоянной работы с файлами проектов лучше подходит локальный редактор кода: он не требует интернета и хранит историю изменений. Онлайн-сервис пригодится, когда нужно быстро проверить чужой файл на рабочем компьютере без прав установки.
Как создать JSON-файл вручную и проверить его на ошибки
Создание начинается с текстового редактора. Откройте блокнот, наберите структуру, сохраните файл с расширением .json. В блоге Практикума указано требование к кодировке: сохранить в UTF-8. Имя файла может быть любым, расширение определяет тип.
Порядок действий по шагам. Первый шаг — откройте фигурную скобку {. Второй — напишите первую пару: ключ в двойных кавычках, двоеточие, значение. Третий — поставьте запятую и добавьте следующую пару. Четвёртый — закройте фигурную скобку }. Пятый — сохраните файл в UTF-8 с расширением .json.
Пример минимального файла:
{
"city": "Moscow",
"temp": 22,
"condition": "ясно"
}
Проверка на ошибки идёт двумя путями. Первый — открыть файл в редакторе кода: он подсветит проблему. Второй — вставить содержимое в онлайн-валидатор. В обзоре РБК описана эта возможность: сервисы «позволяют вставить содержимое JSON, проверить его на ошибки (валидировать) и красиво отформатировать».
Расширение .json — соглашение. В базе знаний ELMA365 есть вопрос «Почему у JSON-файла расширение .json?». Ответ прост: расширение помогает операционной системе и редакторам понять тип содержимого и открыть файл правильной программой.
Частые ошибки в JSON и как их исправить
Ошибка первая — лишняя запятая после последнего элемента. В обзоре на Sky.pro приведён пример: { "ключ1": "значение1", } против корректного { "ключ1": "значение1" }. Запятая перед закрывающей скобкой ломает разбор. Решение — удалить её.
Ошибка вторая — одинарные кавычки вместо двойных. Спецификация требует двойные кавычки для ключей и строковых значений. Замена на одинарные делает файл невалидным. Решение — заменить все кавычки на двойные.
Ошибка третья — неверная кодировка. Если файл сохранён не в UTF-8, кириллица отображается некорректно. В блоге Практикума указано: сохранять в UTF-8. Википедия добавляет: без BOM. Решение — пересохранить файл в нужной кодировке.
Ошибка четвёртая — пропущенная запятая между парами. Парсер сообщает о неожиданном символе. Решение — поставить запятую между элементами, но не после последнего.
Ошибка пятая — незакрытая скобка. Файл обрывается на середине структуры. Редакторы кода подсвечивают парные скобки, что помогает найти пропуск.
Ошибка шестая — число в кавычках там, где нужно число. Википедия приводит пример с почтовым индексом: "postalCode": "101101" — строка, "postalCode": 101101 — число. Если API ожидает число, строка вызовет ошибку типа. Решение — убрать кавычки.
| Ошибка | Как выглядит | Исправление |
|---|---|---|
| Лишняя запятая | {"a": 1,} |
Убрать запятую перед } |
| Одинарные кавычки | {'a': 1} |
Заменить на двойные |
| Неверная кодировка | Кракозябры вместо текста | Сохранить в UTF-8 |
| Пропущена запятая | {"a": 1 "b": 2} |
Добавить запятую |
| Незакрытая скобка | Файл обрывается | Закрыть } или ] |
| Число строкой | "temp": "22" |
Убрать кавычки |
Отдельно стоит упомянуть JSON5. Это расширение стандарта, которое повышает читаемость. В обзоре на thecode.media указано: «В JSON5 ключи объектов могут быть не только в кавычках, но и без них, если это валидные идентификаторы». Там же отмечено: «JSON5 особенно полезен на этапе разработки, но в продакшене лучше использовать классический JSON, чтобы избежать проблем с совместимостью». В обзоре на Skillbox добавляют: «JSON5 расширяет возможности формата, но пока не поддерживается браузерами».
Если вы работаете с нейросетями и хотите автоматизировать рутину, посмотрите сравнение ИИ для написания текстов и разбор запуска LLM через Koboldcpp. Для планирования проектов пригодится материал о том, как составить бизнес-план с нейросетью.
Частые вопросы
JSON что это простыми словами?
JSON — это текстовый способ записать данные парами «ключ: значение». Ключ — название поля, значение — сами данные. Запись читает и человек, и программа на любом языке. Формат разработал Дуглас Крокфорд в начале 2000-х. Простая аналогия — список покупок, где слева товар, справа количество.
JSON что это за тип данных?
JSON не является типом данных одного языка. Это формат, который описывает шесть типов значений: строка, число, boolean, null, объект и массив. Википедия уточняет, что формат считается независимым от языка. Внутри конкретного языка JSON-текст превращается в объекты этого языка через парсер.
JSON что это за формат и как его открыть?
Это текстовый формат обмена данными. Открыть файл можно в блокноте, в редакторе кода вроде Visual Studio Code, в браузере с расширением или в онлайн-сервисе. В обзоре РБК перечислены Блокнот, TextEdit, Visual Studio Code, Sublime Text и Notepad++. Для проверки на ошибки подойдут JSON Formatter & Validator или CodeBeautify.
JSON что это в программировании?
В программировании JSON служит транспортом для данных между сервисами. Сервер отдаёт ответ в JSON, клиент его разбирает. Конфигурации приложений тоже часто хранятся в JSON. Библиотеки для чтения и записи есть почти в каждом языке. В базе знаний ELMA365 указаны спецификации RFC 8259 и ECMA-404.
Чем JSON отличается от XML?
Оба формата передают структурированные данные, но синтаксис разный. XML использует теги, JSON — пары «ключ: значение». JSON-запись компактнее и читается браузером нативно. В базе знаний ELMA365 отмечено, что JSON разработан как альтернатива XML для более лёгкой передачи данных. При этом XML поддерживает комментарии, а базовый JSON — нет.
