JSON Toolkit

Что такое JSON-файл, чем его открыть и как редактировать

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

Начинающий~9 мин чтенияОпубликовано 2026-10-30Обновлено 2026-10-30
Обложка статьи об основах 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. Что делать, если двойной щелчок открывает кракозябры

Три причины, и каждая обрабатывается по-своему:

  1. На самом деле это бинарный файл (например, сжатый архив или выгрузка базы данных с расширением .json). Команда file data.json покажет настоящий тип; не заставляйте систему считать его текстом.
  2. Кодировка не UTF-8. Китайский текст в GBK выглядит кракозябрами в среде UTF-8. Попробуйте в редакторе команду «Открыть с кодировкой» и выберите GBK; если текст отобразился правильно, сохраните файл в UTF-8.
  3. Файл зашифрован или сжат. Признак — 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, и он упадёт.