Что такое JSON? Простое объяснение с примерами
JSON (JavaScript Object Notation) — простой текстовый формат для записи структурированных данных: клиента, заказа или списка товаров — в виде пар «имя — значение». Его легко читать людям и легко создавать и разбирать программам. Когда приложения и сервисы обмениваются данными через сеть, JSON — самый распространённый формат.
Почему JSON важен при создании приложений с ИИ
JSON встречается постоянно, даже если вы никогда не пишете код:
- API. Когда экраны вашего приложения загружают данные с сервера или сервер обращается к платёжному, почтовому или ИИ-сервису, данные обычно передаются в JSON. См. что такое API.
- Файлы настроек. Многие файлы конфигурации проекта — это JSON, например
package.json, в котором перечислены зависимости JavaScript-проекта. - Базы данных. Postgres может хранить JSON в колонке (тип
jsonb) для данных, которые не укладываются в аккуратные строки и столбцы. См. что такое Postgres. - Ответы ИИ. Когда вам нужно, чтобы модель ИИ вернула данные, с которыми может работать программа — список тегов, извлечённые поля счёта, — обычно просят JSON.
- Сообщения об ошибках и логи. Многие ошибки приходят в JSON, и чтение их часто самый быстрый способ понять, что пошло не так.
Умение читать JSON помогает проверить, что приложение действительно получило, заметить пропавшее поле и точно описать проблему конструктору ИИ.
Бытовая аналогия
Представьте бумажную анкету: Имя: ____, Телефон: ____, Рассылка: ☐ да ☐ нет. Каждое поле — это подпись и значение рядом с ней. JSON — та же анкета, записанная текстом, в строгой разметке, которую компьютер может прочитать без догадок. Как в анкетах, в JSON бывают разделы внутри разделов (адресный блок с улицей, городом и индексом) и списки (несколько телефонов).
Как выглядит JSON
Вот одна запись о бронировании в JSON:
{
"id": 5001,
"customer": "Lena Park",
"service": "Haircut",
"startsAt": "2026-10-03T14:00:00Z",
"price": 35.5,
"paid": false,
"notes": null,
"extras": ["beard trim", "hot towel"],
"contact": {
"email": "lena@example.com",
"phone": "+44 20 7946 0000"
}
}
Как это читается:
- Фигурные скобки
{ }обозначают объект — набор пар «имя — значение». - Каждая пара записывается как
"имя": значениеи отделяется запятой. - Квадратные скобки
[ ]обозначают массив — упорядоченный список. - Объекты и массивы могут быть вложены друг в друга, как
contactиextras.
Шесть видов значений
В JSON всего шесть типов значений. Этот короткий список — одна из причин, почему формат работает везде.
| Тип | Пример | Примечания |
|---|---|---|
| Строка (текст) | "Lena Park" | Всегда в двойных кавычках |
| Число | 35.5, -2, 1e6 | Без кавычек; без знаков валюты |
| Логическое | true, false | В нижнем регистре, без кавычек |
| Null | null | «Нет значения» |
| Объект | { "city": "Leeds" } | Именованные значения |
| Массив | [1, 2, 3] | Упорядоченный список; элементы могут быть любого типа |
Типа «дата» в JSON нет. Даты записываются как строки, обычно в формате ISO 8601, как показано выше (2026-10-03T14:00:00Z, где Z означает UTC). Договорённость о формате позволяет избежать целого класса ошибок с часовыми поясами.
Строгие правила (откуда берутся ошибки)
JSON менее снисходителен, чем кажется. Все эти записи некорректны:
{ name: "Lena" } ← ключ без двойных кавычек
{ 'name': 'Lena' } ← одинарные кавычки
{ "a": 1, "b": 2, } ← висячая запятая
{ "a": 1 "b": 2 } ← пропущена запятая
{ "a": 1 // comment } ← комментарии не разрешены
Большинство ошибок «Unexpected token» относятся к одному из этих случаев. Валидатор или форматировщик JSON покажет точную строку.
Пример: JSON в работе приложения
Клиент записывается на стрижку в приложении салона. Вот где появляется JSON:
- Форма записи отправляет на сервер приложения такие данные:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Сервер сохраняет запись в базе данных и отвечает статусом
201 Createdи таким телом:
{ "id": 5001, "status": "confirmed" }
- Если это время уже занято, сервер может вместо этого ответить статусом
409 Conflictи таким телом:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }
Страница читает status или error и показывает нужное сообщение. Если вместо этого появился пустой экран, инструменты разработчика браузера (вкладка Network) покажут этот JSON — часто это самая быстрая подсказка, что пошло не так.
Ключевые термины
| Термин | Значение |
|---|---|
| Ключ | Имя в паре «имя — значение», например "email". |
| Разбор (parse) | Превращение текста JSON в данные, с которыми может работать программа. |
| Сериализация / stringify | Превращение данных в текст JSON для отправки или хранения. |
| Payload | Данные, передаваемые в запросе или ответе. |
| Схема | Описание формы данных — какие поля и какого типа. JSON Schema — стандартный способ её записать. |
| JSONB | Бинарный тип колонки JSON в Postgres, по которому можно строить индексы и запросы. |
| NDJSON / JSON Lines | Один объект JSON на строку, распространено для логов и потоковой передачи. |
Частые заблуждения
- «JSON — это JavaScript». Он взял синтаксис из JavaScript, но не зависит от языка: Python, Java, C#, Go и остальные читают его без проблем.
- «Числа в кавычках — это нормально».
"35"— это строка, а не число. Смешивание приводит к ошибкам вроде"35" + "5"="355". Деньги часто лучше хранить в целых копейках (3550), чтобы избежать ошибок округления. - «JSON безопасен, потому что это просто данные». В JSON может быть что угодно, включая секреты. Не кладите API-ключи в JSON, который отправляется в браузер.
- «Положу всё в колонку JSON». Это удобно для гибких дополнительных полей, но данные, по которым вы ищете, фильтруете или соединяете таблицы, обычно должны лежать в нормальных колонках.
- «ИИ всегда возвращает корректный JSON». Модели могут добавить лишний текст или сломать формат. Многие провайдеры предлагают режим структурированного вывода, но ваш код всё равно должен проверять ответ.
Что попросить у конструктора ИИ
- «Покажи пример JSON, который возвращает этот эндпоинт.»
- «Возвращай ошибки в JSON с кодом
errorи понятным сообщениемmessage.» - «Храни даты как строки ISO 8601 в UTC и переводи в местное время только при выводе на экран.»
- «Храни цены как целые числа в копейках.»
- «Проверяй входящий JSON на сервере и отклоняй запросы с отсутствующими полями или полями неверного типа.»
- «Когда вызываешь ИИ-модель, запрашивай JSON именно такой формы и проверяй его перед использованием.»
JSON в Mythex
В Mythex писать JSON вручную не нужно: вы описываете, что хотите, а агент пишет код, который его отправляет и читает. Но полезно уметь его распознавать: когда что-то ломается, вставка текста ошибки JSON в чат даёт агенту точную подсказку. В рецепте REST API-бэкенд в документации с самого начала просят «понятные ошибки в JSON», а рецепт интеграция с любым API описывает вызовы внешних сервисов. Для общей картины см. REST и GraphQL и как отлаживать приложение, созданное с ИИ.
Вопросы
Что такое JSON простыми словами?
JSON (JavaScript Object Notation) — текстовый формат для записи структурированных данных в виде имён и значений, например "name": "Лена". Почти все веб-API используют его для обмена данными, а многие приложения хранят в нём настройки и данные.
JSON — это язык программирования?
Нет. JSON — формат данных, а не язык. Сам по себе он ничего не делает: он только описывает данные. Хотя он пришёл из JavaScript, практически любой язык программирования умеет его читать и записывать.
В чём разница между JSON и объектом JavaScript?
Выглядят похоже, но JSON строже. В JSON все ключи должны быть в двойных кавычках, строки тоже в двойных кавычках, комментариев нет, висячих запятых нет, а значения ограничены строками, числами, true, false, null, объектами и массивами.
Почему JSON пишет, что он некорректный?
Обычные причины: висячая запятая после последнего элемента, одинарные кавычки вместо двойных, пропущенная запятая между элементами, незакрытая скобка или комментарий. Вставьте текст в валидатор JSON, и он покажет строку с ошибкой.