Что такое JSON-файл, чем его открыть и как редактировать
Главное: От кракозябр в «Блокноте» до трёх способов открыть JSON-файл, а также как убедиться, что после правки ничего не сломалось, и что делать, если огромный файл не открывается.

Коротко: прежде чем открыть JSON-файл, проверьте его кодировку и наличие BOM, затем убедитесь, что структура — это только объект или массив; после правки всегда валидируйте файл парсером, а не всматривайтесь в скобки и запятые.
Это просто текстовый файл с расширением
.json, его откроет даже «Блокнот». Настоящая головная боль не в том, что «он не открывается», а в том, что после открытия вы не видите, что именно сломали.
1. Что на самом деле лежит внутри JSON-файла
Допустимый JSON-файл может содержать только одно из двух: объект {...} или массив [...]. Ничего больше не разрешено — ни объявлений переменных, ни комментариев, ни функций.
{
"name": "order service",
"port": 8080,
"debug": false,
"upstream": ["10.0.0.11", "10.0.0.12"],
"timeout": null
}
Структурно достаточно распознавать три вещи:
| Что вы видите | Что это значит | Соответствующее понятие в программировании |
|---|---|---|
Пары ключ-значение в { } |
Объект; ключи должны быть строками в двойных кавычках | Map / struct |
Последовательность значений в [ ] |
Массив; типы элементов могут различаться | List |
| Шесть типов значений | Строка, число, логическое, null, объект, массив | Только эти шесть; ни дат, ни целых |
Расширение файла не определяет содержимое: package.json, tsconfig.json и composer.json — все относятся к одному и тому же типу; просто разные инструменты договорились читать из них разные ключи.
2. Три способа открыть файл — по ситуации
Быстро посмотреть: откройте в браузере. Перетащите файл в окно Chrome или Edge, и браузер покажет его как есть; если установлено расширение JSON Viewer, файл автоматически форматируется и становится сворачиваемым.
Нужно править содержимое: используйте редактор. VS Code, Sublime и Notepad++ все поддерживают подсветку синтаксиса JSON и сопоставление скобок, а Shift + Alt + F в VS Code форматирует документ. Учтите, что «Блокнот» Windows может добавлять BOM при сохранении, и тогда изменения конфигурации могут не вступить в силу; лучше его избегать.
Не хочется ничего устанавливать, нужно только проверить: используйте онлайн-форматтер JSON. Вставьте содержимое, и вы сразу увидите номера строк и столбцов, места ошибок и сворачиваемое дерево; когда закончите, скопируйте результат. Данные обрабатываются локально в браузере и не отправляются на сервер.
Большие файлы (десятки мегабайт и больше): не пытайтесь открыть их в редакторе силой. Открытие JSON-файла на 100 МБ в VS Code подвесит редактор так, что вы начнёте сомневаться в своих жизненных решениях; сначала посмотрите структуру из командной строки:
# Look at the first 20 lines to confirm whether it is an array
head -n 20 data.json
# Use jq to list top-level keys without loading the whole file
jq -r 'keys[]' data.json | head
# Count the array length
jq 'length' data.json
3. Что делать, если двойной щелчок открывает кракозябры
Три причины, и каждая обрабатывается по-своему:
- На самом деле это бинарный файл (например, сжатый архив или выгрузка базы данных с расширением
.json). Командаfile data.jsonпокажет настоящий тип; не заставляйте систему считать его текстом. - Кодировка не UTF-8. Китайский текст в GBK выглядит кракозябрами в среде UTF-8. Попробуйте в редакторе команду «Открыть с кодировкой» и выберите GBK; если текст отобразился правильно, сохраните файл в UTF-8.
- Файл зашифрован или сжат. Признак —
PK(zip) или куча знаков вопроса в начале; такие файлы сначала нужно распаковать или расшифровать.
4. Как убедиться, что после правки ничего не сломалось
JSON нетерпим: одна пропущенная запятая, одна лишняя запятая или одна пропущенная кавычка — и весь файл мёртв, причём сообщённое место ошибки часто указывает на следующую строку. Поэтому после правки обязательно валидируйте; не полагайтесь на глаза.
Три самые опасные операции при редактировании, по частоте причиняемых проблем:
| Действие | Частое последствие | Как избежать |
|---|---|---|
| Вставка блока конфигурации | Приносит завершающую запятую или полноширинную пунктуацию | Сразу после вставки выполните форматирование |
| Ручная перестановка ключей | Лишняя или пропущенная запятая | Используйте команды перемещения строк в редакторе; не перепечатывайте вручную |
| Удаление последнего элемента массива | Оставляет ,] |
После удаления проверьте, что скобки парные |
Валидация проста: вставьте в онлайн-валидатор и ищите красный текст или выполните одну строку в командной строке:
python3 -m json.tool config.json > /dev/null && echo OK
Если выводится OK, файл корректен. Если нужно проверить ещё и типы полей (например, port должен быть числом, а name не должен быть пустым), JSON Schema гораздо надёжнее человеческих глаз.
5. Чем .json отличается от близких родственников
| Расширение | Отличие | Читает ли его стандартный парсер |
|---|---|---|
.json |
Стандартный JSON | Да |
.jsonc |
Допускает комментарии // и /* */ |
Нет; сначала нужно удалить комментарии |
.json5 |
Допускает комментарии, одинарные кавычки, ключи без кавычек, завершающие запятые | Нет; нужен парсер JSON5 |
.jsonl / .ndjson |
Один независимый JSON на строку; файл целиком не является допустимым JSON | Нет, не целиком; читать нужно построчно |
Не удивляйтесь комментариям в tsconfig.json: на самом деле он обрабатывается как .jsonc. Передайте то же содержимое в JSON.parse, и получите ошибку. Когда нужно преобразовать одно в другое, используйте конвертацию JSON5 в JSON, чтобы в один клик снять комментарии и завершающие запятые.
6. Когда пора менять формат хранения
JSON подходит для сценариев, где «структура не фиксирована, человеку нужно читать, и данные ходят между языками». Если файл превышает десятки мегабайт, структура полей стабильна, а нужны запросы с условиями, оставаться на JSON — значит создавать себе проблемы: переходите на SQLite, Parquet или загружайте данные в базу; производительность чтения и записи отличается на порядки. О конкретных компромиссах читайте в статье Разбор и потоковая обработка больших JSON.
Вопросы и ответы
Как посмотреть JSON-файл, который слишком большой, чтобы открыть его?
Не открывайте его в редакторе силой: файл на 100 МБ в VS Code подвесит редактор так, что вы начнёте сомневаться в своих решениях. Сначала посмотрите структуру из командной строки: head -n 20 подтвердит, массив ли это, jq -r 'keys[]' выведет только ключи верхнего уровня, а jq 'length' посчитает длину массива. Ни одна из этих команд не загружает файл целиком.
Почему после правок в «Блокноте» конфигурация не вступает в силу?
«Блокнот» Windows может добавлять BOM при сохранении, а файл с BOM не проходит разбор конфигурации, поэтому изменённое содержимое так и не применяется. В статье рекомендуется использовать редакторы вроде VS Code, Sublime или Notepad++, которые поддерживают подсветку синтаксиса JSON и сопоставление скобок. Если вы уже воспользовались «Блокнотом», сохраните файл заново как «UTF-8 без BOM» и повторите попытку.
Можно ли считать JSON-файл файлом JSON5 и добавить в него комментарии?
Нет — стандартный парсер не допускает комментарии в .json-файле, и JSON.parse сразу выдаст ошибку. Комментарии относятся к файлам .jsonc или .json5, которые читает соответствующий парсер. Файлы вроде tsconfig.json на самом деле обрабатываются как .jsonc; передайте то же содержимое в JSON.parse, и он упадёт.