Що таке файл JSON, чим його відкривати та як редагувати
Головне: Від «кракозябр» у Notepad до трьох способів відкрити файл 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. Що робити, коли подвійний клік відкриває «кракозябри»
Три причини, кожна обробляється по-різному:
- Насправді це двійковий файл (наприклад, стиснутий архів або експортований файл бази даних із розширенням
.json). Скористайтесяfile data.json, щоб побачити справжній тип; не намагайтеся обробити його як текст. - Кодування не UTF-8. Китайський текст у кодуванні GBK стає «кракозябрами» в середовищі UTF-8. Скористайтеся редакторською функцією «Reopen with encoding», щоб спробувати 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-мегабайтного 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, і він зазнає збою.