JSON Toolkit

Що таке файл JSON, чим його відкривати та як редагувати

Головне: Від «кракозябр» у Notepad до трьох способів відкрити файл JSON, а також як переконатися, що після редагування нічого не зламалося, і що робити, коли величезний файл не відкривається.

Початковий~9 хв читанняОпубліковано 2026-10-30Оновлено 2026-10-30
Обкладинка статті про основи файлів JSON

Коротко: перш ніж відкривати файл JSON, переконайтеся в його кодуванні та відсутності BOM, а тоді перевірте, що структура — це лише об'єкт або масив; після редагування завжди перевіряйте його парсером, а не вдивляйтеся в дужки й коми.

Це просто звичайний текстовий файл із розширенням .json, і навіть Notepad його відкриє. Справжня головна біль не в «не відкривається», а в тому, що відкривши його, ви не бачите, що зламали.

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 Notepad може додавати BOM під час збереження, тож зміни в конфігурації можуть не набути чинності; краще його уникати.

Не хочеться нічого встановлювати, треба лише перевірити: скористайтеся онлайн-форматувальником JSON. Вставте вміст і одразу побачите номери рядків і стовпців, місця помилок і згортуване дерево; коли закінчите, копіюйте результат. Дані обробляються локально в браузері й не завантажуються на сервер.

Великі файли (десятки мегабайт і більше): не намагайтеся відкрити їх у редакторі. Відкриття 100-мегабайтного JSON-файлу в VS Code зависне так, що ви почнете сумніватися в життєвих виборах; спершу огляньте структуру з командного рядка:

# Подивитися перші 20 рядків, щоб зрозуміти, чи це масив
head -n 20 data.json

# Через jq показати ключі верхнього рівня, не завантажуючи весь файл
jq -r 'keys[]' data.json | head

# Порахувати довжину масиву
jq 'length' data.json

3. Що робити, коли подвійний клік відкриває «кракозябри»

Три причини, кожна обробляється по-різному:

  1. Насправді це двійковий файл (наприклад, стиснутий архів або експортований файл бази даних із розширенням .json). Скористайтеся file data.json, щоб побачити справжній тип; не намагайтеся обробити його як текст.
  2. Кодування не UTF-8. Китайський текст у кодуванні GBK стає «кракозябрами» в середовищі UTF-8. Скористайтеся редакторською функцією «Reopen with encoding», щоб спробувати 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-мегабайтного JSON-файлу в VS Code зависне так, що ви почнете сумніватися в життєвих виборах. Огляньте структуру з командного рядка: head -n 20 покаже, чи це масив, jq -r 'keys[]' виведе лише ключі верхнього рівня, а jq 'length' порахує довжину масиву. Жодна з цих команд не завантажує весь файл.

Чому мої правки в Notepad не дають конфігурації набути чинності?

Windows Notepad може додавати BOM під час збереження, а файл із BOM не проходить розбір конфігурації, тож редагований вміст так і не набуває чинності. Стаття рекомендує редактори на кшталт VS Code, Sublime або Notepad++, які мають підсвічування синтаксису JSON і сполучення дужок. Якщо ви вже скористалися Notepad, збережіть ще раз як «UTF-8 без BOM» і повторіть спробу.

Чи можна ставитися до файлу JSON як до JSON5 і додавати коментарі?

Ні — стандартний парсер не дозволяє коментарів у файлі .json, і JSON.parse одразу видає помилку. Коментарі належать файлам .jsonc або .json5, які читає відповідний парсер. Файли на кшталт tsconfig.json насправді обробляються як .jsonc; подайте той самий вміст у JSON.parse, і він зазнає збою.