JSON-форматер

Наш JSON-форматер — це швидкий і безкоштовний онлайн-інструмент для розробників, що дозволяє форматувати, перевіряти та мініфікувати дані JSON. Вставте свій JSON і миттєво отримайте структурований код із підсвічуванням синтаксису. Валідатор точно визначає місця помилок із зазначенням номерів рядків, що спрощує виправлення некоректного JSON. Підтримуються відступи у 2 пробіли, 4 пробіли та табуляція, а також мініфікація в один клік для використання у продакшені. Уся обробка відбувається у вашому браузері — ваш JSON, включно з будь-якими конфіденційними даними, ніколи не залишає сторінку.

star 4.9
auto_awesome AI
New

JSON-форматер calculator

info Paste JSON to format
0 lines 0 B 0 keys depth 0

lightbulb Tips

  • •JSON keys must use double quotes
  • •Trailing commas are not valid JSON
  • •Use 2-space indent for most projects
  • •Minify JSON for API payloads

Як форматувати, валідувати та мініфікувати JSON за 3 кроки

content_paste

Вставте JSON

Вставте свій неформатований або заплутаний JSON у вхідний редактор. Підтримується будь-який дійсний (або недійсний) текст JSON.

code

Форматувати або мінімізувати

Натисніть «Форматувати», щоб зробити текст читабельним із вибраним відступом, або «Мінімізувати» для стиснення. Помилки підсвічуються автоматично.

content_copy

Скопіювати результат

Натисніть кнопку «Скопіювати», щоб скопіювати відформатований JSON у буфер обміну. Використовуйте його у своєму коді, запитах API або файлах конфігурації.

bug_report

Виправити помилки

Якщо JSON недійсний, повідомлення про помилку показує точний рядок і позицію. Виправте проблему та відформатуйте знову.

The Formula

Форматування JSON працює шляхом синтаксичного аналізу необробленого рядка JSON в об'єкт JavaScript (що перевіряє його валідність), а потім його повторного серіалізування з належними відступами. Якщо розбір не вдається, повідомлення про помилку містить позицію синтаксичної помилки. Мініфікація видаляє всі пробіли, не використовуючи відступів.

JSON.parse(input) → JSON.stringify(parsed, null, indent)

lightbulb Variables Explained

  • input Необроблений рядок JSON для форматування
  • JSON.parse() Перевіряє та аналізує JSON — викидає помилку, якщо він недійсний
  • JSON.stringify() Перетворює розібраний об'єкт назад у відформатований рядок
  • indent Кількість пробілів (2 чи 4) або символ табуляції для відступу

tips_and_updates Pro Tips

1

Використовуйте відступ у 2 пробіли для компактних файлів і 4 пробіли для кращої читабельності

2

Мініфікуйте JSON перед відправкою в API-запитах, щоб зменшити розмір даних

3

Поширені помилки: коми в кінці, одинарні лапки та ключі без лапок є неприпустимими в JSON

4

Натисніть Ctrl+A, щоб виділити все, а потім вставте — форматер обробить будь-які пробільні символи

5

Ключі JSON завжди мають бути рядками у подвійних лапках — {key: value} не є коректним JSON

6

Масиви та об'єкти можуть бути порожніми: [] та {} є валідним JSON

7

null, true, false є допустимими значеннями JSON, тоді як undefined та NaN — ні

8

Стандарт RFC 8259 вимагає кодування UTF-8 — екрануйте символи поза межами ASCII за допомогою \uXXXX, якщо протокол передачі підтримує лише ASCII

9

Сортуйте ключі об'єктів за алфавітом перед порівнянням двох файлів JSON для чистішого відображення змін

10

Для дуже великих файлів віддавайте перевагу потоковим парсерам (jq, ijson, Jackson Streaming) замість JSON.parse

Форматуйте, перевіряйте та мініфікуйте JSON миттєво за допомогою підсвічування синтаксису, номерів рядків помилок і копіювання в один клік. Уся обробка виконується у вашому браузері — вставляйте відповіді API, корисні дані JWT або конфіденційні конфігурації без ризику, що вони покинуть ваш пристрій. Нижче наведено: як працює форматувальник, специфікацію JSON, за якою він перевіряється (RFC 8259 / ECMA-404), а також детальний огляд JSON Schema, JSONPath, JSON Lines, JSON5 та підозрілих моментів у безпеці, які повинен знати кожен розробник.

Онлайн-форматувальник JSON: красивий друк і покращення вигляду будь-якого JSON

Вставте компактний, мініфікований або хаотичний JSON і миттєво отримайте ідеально відформатований результат. Форматувальник аналізує ваш JSON за допомогою вбудованого у браузер JSON.parse (згідно з ECMA-404), зберігає символи Unicode та виводить їх із вибраним вами відступом:

  • 2 пробіли (стандарт для npm і prettier)
  • 4 пробіли
  • табуляція

Вкладені об'єкти та масиви правильно вирівняні на кожному рівні глибини. Ключі, рядки, числа, логічні значення та null мають окремі кольори підсвічування синтаксису, щоб ви могли миттєво зорієнтуватися в структурі.

Мітка 'beautifier' (прикрашач) є взаимозамінною з 'formatter' (форматувальник) або 'pretty printer' (форматувальник виводу) — усі вони описують одну й ту саму операцію: створення зручного для читання JSON із компактних вхідних даних.

Як перевірити JSON на валідність: відповідність RFC 8259 та поширені помилки

Перевірка виконується під час введення. Якщо ваш JSON не вдається розібрати, форматувальник показує точний рядок, стовпчик і те, чого очікував аналізатор.

Перевірка є суворою відповідно до RFC 8259 (інтернет-стандарт IETF) та ECMA-404 — жодних коментарів, жодних кінцевих ком, жодних одинарних лапок, жодних ключів без лапок, жодних NaN, жодних Infinity, жодних undefined. Значення верхнього рівня може бути будь-яким значенням JSON (об'єкт, масив, рядок, число, true, false, null).

Для вхідних даних у кодуванні UTF-8 форматувальник приймає повний набір символів Unicode; середовища лише з ASCII повинні використовувати екранування \uXXXX.

Поширені помилки та їх вирішення:

  • кінцева кома після останнього елемента масиву/об'єкта (видаліть її)
  • одинарні лапки навколо ключів або рядків (замініть на подвійні)
  • відсутня закриваюча фігурна або квадратна дужка (стовпчик помилки вказує близько до місця зрізу)
  • неекрановані керуючі символи в рядках (екрануйте за допомогою \n, \t, \\)

Мініфікатор JSON: зменшення розміру корисного навантаження для API та продакшну

Мініфікація видаляє всі несуттєві пробіли — пробіли між лексемами, відступи та нові рядки, залишаючи найбільш компактне можливе представлення. Типова економія становить 20–60% залежно від того, наскільки сильно був відступлений ваш вихідний JSON.

Використовуйте мініфікований JSON для:

  • відповідей REST/GraphQL API
  • повідомлень WebSocket
  • корисних даних JWT
  • блоків конфігурації SaaS
  • вбудованих атрибутів даних в HTML

Зберігайте відформатований (красиво надрукований) JSON для:

  • файлів конфігурації з контролем версій
  • фікстур і знімків у тестах
  • документів, які редагуються людьми

Мініфікований JSON усе ще є на 100% стандартним JSON — будь-який сумісний аналізатор приймає його. Мініфікатор тут точно зберігає дані: жодного переупорядкування ключів, жодного примусового перетворення значень, жодної втрати точності чисел у межах подвійного діапазону IEEE 754.

Перевірка за схемою JSON: перевірка типів, обов'язкових полів і переліків (enum)

Чиста перевірка синтаксису JSON лише перевіряє, чи документ розбирається. JSON Schema перевіряє форму документа — чи є 'email' рядком, 'age' — цілим числом від 0 до 150, 'role' — одним із ['admin', 'user', 'guest']. Сама схема є документом JSON, що описує обмеження; екземпляри перевіряються на відповідність їй.

Поширені ключові слова: type, required, properties, items, enum, pattern (регулярний вираз), minimum/maximum, minLength/maxLength, format (email, date-time, uri).

Еталонні реалізації:

  • Ajv (JavaScript, найшвидший)
  • jsonschema (Python)
  • networknt/json-schema-validator (Java)
  • justinrainbow/json-schema (PHP)

Перевірка за схемою виявляє величезний клас помилок на межі API: відсутні обов'язкові поля, неправильні типи, значення поза допустимим діапазоном, неформатовані дати. Специфікації OpenAPI 3.x використовують JSON Schema для перевірки запитів/відповідей.

Посібник з JSONPath: запити та витягування значень із вкладеного JSON

JSONPath для JSON — це те саме, що XPath для XML, тобто мова запитів для навігації та витягування даних із вкладеного JSON.

Синтаксис:

  • $ (корінь)
  • . (дочірній елемент)
  • .. (рекурсивний пошук вглиб)
  • [n] (індекс масиву)
  • [start:end] (зріз)
  • [?(expression)] (фільтр)
  • * (підстановочний знак)

Приклади для типового магазину JSON:

  • $.store.book[0].title отримує назву першої книги
  • $..author повертає кожного автора в документі
  • $.store.book[?(@.price < 10)] фільтрує книги дешевші за 10
  • $.store..price[*] вирівнює всі ціни в один список

Інструменти: jq (дещо інший синтаксис, але ті самі можливості, домінує в сценаріях оболонки), тестові сценарії Postman, JMESPath (параметр --query в AWS CLI) та бібліотеки JSONPath кожною основною мовою.

JSON Lines (JSONL): калькулятор віку у форматі з розмежуванням новими рядками для логів і потоків

JSON Lines (jsonlines.org), також відомий як NDJSON або LDJSON, — це формат, де кожен рядок є повним значенням JSON. Файл загалом не є валідним JSON, але кожен рядок окремо — так.

Широко використовується для потокової передачі логів (Loki, Splunk HEC, Vector), конвеєрів ETL, навчальних даних машинного навчання (файли точного налаштування OpenAI) і будь-яких потоків даних, які лише доповнюються.

Переваги:

  • дружній до потокової передачі (розбір одного запису за раз, постійна пам'ять)
  • лише доповнення (просто записуйте наступний рядок)
  • підтримує grep і awk зі стандартними утилітами Unix

Розширення файлів: .jsonl, .ndjson. Конвертація з масиву JSON за допомогою `jq -c '.[]'`; конвертація в масив JSON за допомогою `jq -s` (slurp). BigQuery, Athena, Snowflake і більшість сучасних сховищ даних приймають NDJSON безпосередньо.

JSON5 проти JSON: коли безпечно використовувати кожен формат

JSON5 (jsonlines.org) розширює JSON зручностями для розробників:

  • коментарі (// і /* */)
  • кінцеві коми
  • рядки в одинарних лапках
  • ключі без лапок
  • багаторядкові рядки (з продовженням зворотним слешем)
  • шістнадцяткові числа
  • спеціальні значення IEEE 754 (NaN, Infinity)

Він НЕ сумісний із JSON.parse — вам потрібен парсер JSON5 (пакет npm json5, PyJson5).

Використовуйте JSON5 для конфігураційних файлів, які редагуються людьми, де коментарі є цінними: babel.config.json5, деякі конфігурації інструментів збірки, .vscode/settings.json (який використовує JSONC, подібний діалект JSON із коментарями).

Дотримуйтеся суворого JSON для: HTTP-API, обміну даними, форматів зберігання та всього, що згенеровано машиною. Змішування обох плутає інструменти — виберіть один для кожного файлу й дотримуйтеся його.

Поширені помилки JSON: кінцеві коми, одинарні лапки та кодування

Найчастіші помилки синтаксичного аналізу JSON та їх виправлення:

  • (1) Кінцева кома після останнього елемента — `{"a":1,}` або `[1,2,3,]` — видаліть зайву кому.
  • (2) Одинарні лапки для ключів або значень рядків — `{'name':'Alice'}` — мають бути подвійні лапки.
  • (3) Ключі без лапок — `{name:"Alice"}` — візьміть їх у лапки.
  • (4) Коментарі з використанням // або /* */ — суворий JSON їх не дозволяє; видаліть або перейдіть на JSON5/JSONC.
  • (5) Значення JavaScript, яких немає в JSON — undefined, NaN, Infinity, функції — замініть на null або видаліть.
  • (6) Обрізаний вхід — парсер зазвичай вказує на рядок, у якому закінчився очікуваний вміст.
  • (7) BOM (маркер порядку байтів) на початку файлу UTF-8 — більшість парсерів відхиляють його; видаліть за допомогою `sed -i '1s/^\xEF\xBB\xBF//'`.
  • (8) Змішані табуляції та пробіли не порушують розбір, але плутають diff — виберіть один стиль відступів.

Безпека JSON: забруднення прототипу, eval та безпечний парсинг

Три категорії вразливостей, пов'язаних із JSON, які повинен розуміти кожен розробник.

  • (1) Забруднення прототипу: об'єднання неперевіреного JSON у наявний об'єкт може забруднити Object.prototype, якщо вхідні дані містять ключі __proto__, constructor або prototype, що впливає на кожен об'єкт у середовищі виконання. Використовуйте Object.create(null), structuredClone або такі бібліотеки, як lodash defaultsDeep, які явно блокують ці ключі.
  • (2) Ніколи не використовуйте eval() для розбору JSON — eval виконує будь-який JavaScript, тоді як JSON.parse є ізольованим. Міф про те, що 'eval швидший', було спростовано багато років тому.
  • (3) Нюанси повторної серіалізації: JSON.stringify мовчки опускає функції, undefined та значення Symbol з об'єктів (перетворює на null у масивах). За замовчуванням він також викликає помилку для циркулярних посилань та BigInt.

Перевіряйте неперевірений JSON за допомогою JSON Schema перед обробкою, встановіть максимальний розмір тіла для свого API та використовуйте перевірки Content-Type, щоб завчасно відхиляти не-JSON вхідні дані. Посібник із безпеки REST від OWASP охоплює повну картину.

Конвертувати JSON у YAML, CSV та XML: посібник із конвертації форматів

JSON ↔ YAML — це найбільш без втрат конвертація — обидва підтримують вкладені об'єкти/масиви. Стежте за автоматичним приведенням типів у YAML (yes/no/on/off стають булевими значеннями, числа без лапок залишаються числами, літеральний рядок 'null' стає null) — бери в лапки неоднозначні значення. Інструменти: js-yaml (npm), PyYAML, yq.

JSON → CSV вимагає вирівнювання вкладеної структури — найкраще працює для масивів пласких об'єктів. Виберіть стратегію для вкладених значень: stringify (записати як JSON у комірку) або колонки у форматі з крапками (`address.city`, `address.zip`). Інструменти: in2csv від csvkit, pandas pd.json_normalize, json2csv (npm).

JSON → XML простий для древоподібних структур, але втрачає різницю між масивом та об'єктом — сусідні елементи XML можуть бути чим завгодно. Стежте за недійсними іменами елементів XML (не можуть починатися з цифр, не можуть містити пробіли). Інструменти: xml-js, xmltodict (Python).

Для всіх перетворень заздалегідь вирішіть, чи зберігаєте ви інформацію про тип, чи вирівнюєте все до рядків.

Робота з великими файлами JSON: потокові парсери та поради щодо пам'яті

JSON.parse завантажує весь документ у пам'ять — це нормально для типових відповідей API, але проблематично для файлів розміром понад кілька сотень мегабайт. Потокові парсери обробляють один токен (або один запис) за раз, утримуючи постійну пам'ять незалежно від розміру файлу.

  • JavaScript: stream-json або oboe.js для парсингу в стилі SAX.
  • Python: ijson для інкрементального парсингу або спочатку конвертуйте в JSON Lines і читайте рядок за рядком.
  • Java: Jackson Streaming API (JsonParser).
  • Shell: jq обробляє потоковий JSON через --stream.

Для файлів, згенерованих як масиви записів JSON, подумайте про те, щоб переключити виробника на виведення JSON Lines — від цього виграє кожен кінцевий споживач. Коли вам доводиться працювати з величезним масивом JSON у пам'яті, віддавайте перевагу ітераціям та видаленню записів, а не побудові паралельної структури даних. Стежте за розміром купи, встановіть --max-old-space-size у Node та профілюйте перед оптимізацією.

Шпаргалка форматувальника JSON: відступи, сортування ключів, diff та екранування

Короткий довідник для щоденних завдань із JSON.

  • Відступи: prettier та npm за замовчуванням використовують 2 пробіли; виберіть 4 для корпоративних кодових баз, які вже використовують 4-пробільні відступи в різних мовах; табуляції дійсні, але рідкісні в JSON.
  • Сортування ключів (для чистішого diff): JSON.stringify(obj, Object.keys(obj).sort(), 2) для неглибоких об'єктів; jq --sort-keys для глибокої рекурсії; Python json.dumps(obj, sort_keys=True).
  • Порівняння двох файлів JSON: jq --sort-keys для обох файлів, потім запустіть звичайний diff; або використовуйте json-diff (npm), DeepDiff (Python), вбудоване в VS Code порівняння з підтримкою JSON.
  • Послідовності екранування в рядках: \\" (подвійні лапки), \\\\ (зворотний слеш), \\/ (прямий слеш, необов'язково), \\b (бейсбек), \\f (переведення сторінки), \\n (новий рядок), \\r (повернення каретки), \\t (табуляція), \\uXXXX (код Unicode).
  • Числа: JSON дозволяє десяткові дроби та експоненти (1.5e3), але без провідних нулів (0123 є недійсним) і без кінцевої десяткової крапки (1. є недійсним).
  • Рядки мають бути в подвійних лапках — одинарні лапки є лише в JSON5.
code

Embed this JSON-форматер on your site

Free for any site. Copy the snippet below and paste into your HTML — no attribution required beyond the built-in credit link.

<iframe src="https://calculators.im/embed/json-formatter" width="100%" height="720" style="border:0;max-width:100%;" loading="lazy" title="JSON-форматер by Calculators.im"></iframe>
<p style="font-size:12px;text-align:center;color:#64748b;margin-top:6px;">Powered by <a href="https://calculators.im/json-formatter?utm_source=embed&utm_medium=snippet&utm_campaign=json-formatter">JSON-форматер</a> by Calculators.im</p>
open_in_new Preview embed Auto-resizing iframe. Mobile responsive. Works with WordPress, Ghost, Webflow, and plain HTML.

Frequently Asked Questions

sell

Tags