JSON Форматувальник і Валідатор Pro

Форматуйте, перевіряйте, запитуйте, порівнюйте та перетворюйте JSON — повністю у вашому браузері

Вхідний JSON

Відступ

Відформатований вивід

Відформатований вивід з'явиться тут

JSON Форматувальник, Валідатор, JSONPath, Diff і Schema — onDevTools

Форматуйте, перевіряйте, запитуйте, порівнюйте та перетворюйте JSON повністю у вашому браузері. Суворий парсер RFC 8259 плюс режим JSONC, валідація JSON Schema Draft 2020-12, JSONPath за RFC 9535, глибокий diff з JSON Merge Patch і перетворення сплощення / відновлення / видалення null — без завантаження, без відстеження.

Можливості

  • Гарне виведення та мініфікація JSON з налаштовуваним відступом (2, 4, 8 пробілів) і необов'язковим алфавітним сортуванням ключів
  • Суворий парсер RFC 8259 / ECMA-404 плюс м'який режим JSONC, який приймає коментарі // та /* */ і коми наприкінці
  • Інтерактивний згортуваний деревоподібний перегляд із повнотекстовим пошуком, розгортанням/згортанням усього та копіюванням значення або шляху JSON Pointer для кожного вузла
  • Валідатор JSON Schema (Draft 2020-12), що повідомляє про порушення type, required, enum, pattern, min/max, oneOf/anyOf/allOf, additionalProperties та елементів масиву з повними шляхами екземпляра
  • Двигун запитів JSONPath (RFC 9535) з підтримкою підстановочних знаків, рекурсивного спуску (..), зрізів масивів і виразів фільтра на кшталт $[?(@.price > 10)]
  • Глибокий side-by-side diff із кольоровим маркуванням доданих / видалених / змінених / незмінних сегментів плюс копіювання або завантаження результату
  • Конвеєр перетворень: сплощення в точкову нотацію, обернене відновлення, видалення null, видалення порожніх рядків/масивів/об'єктів і об'єднання операцій у ланцюжок
  • Панель статистики JSON: усього елементів, кількість об'єктів/масивів, розбивка за типами та максимальна глибина вкладеності
  • Вбудовані повідомлення про помилки з рядком і стовпцем від парсера плюс пропозиції увімкнути режим JSONC, коли збій схожий на проблему з коментарем чи комою наприкінці
  • Копіювання або завантаження в один клік для відформатованого, мініфікованого, схеми чи diff-виводу
  • Працює повністю на стороні клієнта — JSON, схеми та вхідні дані diff ніколи не залишають ваш браузер

Як використовувати

  1. Вставте або перетягніть ваш JSON у панель Вхідний JSON — авто-форматування запускається під час набору, або натисніть Форматувати для явного запуску.
  2. Якщо парсинг не вдається на конфігураційному файлі або налаштуваннях VS Code, перемкніть тумблер JSONC, щоб дозволити коментарі та коми наприкінці, і запустіть знову.
  3. Перейдіть у перегляд Дерево, щоб досліджувати глибоко вкладені структури; використовуйте поле пошуку для підсвічування відповідних ключів або значень і копіювання шляху чи значення будь-якого вузла.
  4. Відкрийте вкладку Валідація схеми, вставте документ JSON Schema і натисніть Перевірити — кожне порушення показує ключове слово, яке не пройшло, і шлях JSON Pointer до помилкового значення.
  5. Використовуйте вкладку Порівняння diff, щоб порівняти два JSON-документи й скопіювати патч як JSON Merge Patch, готовий до застосування деінде.
  6. Використовуйте вкладку Запит JSONPath, щоб видобувати або фільтрувати частини документа виразами на кшталт $.store.book[?(@.price < 10)].title.
  7. Використовуйте вкладку Перетворення для сплощення, відновлення або видалення null; об'єднуйте перетворення в ланцюжок, повторно запускаючи їх на оновленому вводі, потім копіюйте чи завантажуйте результат.

Поради та найкращі практики

  • Вмикайте JSONC, щойно бачите «Unexpected token /» або «Unexpected token ,» — це майже завжди конфігураційний файл з коментарями або комою наприкінці.
  • Використовуйте Сортувати ключі перед коммітом конфігураційних файлів JSON, щоб тримати diff'и PR мінімальними.
  • Скопіюйте шлях JSON Pointer з переглядача Дерево, щоб вставити глибоке посилання на конкретний вузол у баг-репорт або опис PR.
  • Якщо 64-бітний ID відображається як 1234567890123456800, ваш продюсер видає його як число — переключіть API на надсилання ID як рядків.
  • Об'єднайте в ланцюжок Видалити null → Мініфікувати → Копіювати, щоб отримати мінімально можливе корисне навантаження для тіл HTTP-запитів.

Запитання та відповіді

Чи зберігаєте ви мій JSON?

Ні. Парсинг, валідація, перевірки за схемою, порівняння й перетворення — усе виконується у вашому браузері за допомогою локального JavaScript та API Web Crypto / DOM — нічого не завантажується. Це робить безпечним вставлення API-відповідей, конфігураційних файлів або конфіденційних даних з продакшен-систем.

Якій специфікації JSON слідує парсер?

Суворий режим слідує RFC 8259 / ECMA-404 — стандартам IETF та ECMA для JSON. Режим JSONC (перемикач JSONC) додає розширення з коментарями та комами наприкінці, які використовуються в settings.json VS Code, tsconfig.json та подібних конфігураційних файлах. JSON5 (наприклад, ключі без лапок, одинарні лапки, шістнадцяткові числа) наразі не підтримується — використовуйте парсер JSON5, якщо ваш ввід потребує таких форм.

Що підтримує валідатор JSON Schema?

Валідація виконується за JSON Schema Draft 2020-12 з повним покриттям type, required, enum, pattern, format, minimum/maximum, minLength/maxLength, minItems/maxItems, additionalProperties, items, prefixItems, oneOf/anyOf/allOf, $ref та умовних if/then/else. Кожне порушення повідомляє ключове слово, яке не пройшло, плюс шлях JSON Pointer до неправильного значення, тож ви можете точно визначити глибоко вкладені проблеми, не скануючи весь екземпляр.

Які вирази JSONPath підтримуються?

Двигун запитів реалізує поверхню RFC 9535: корінь ($), дочірній сегмент ($.key, $['key']), індекс і зріз масиву ([0], [0:3]), підстановочні знаки ([*]), рекурсивний спуск (..) та вирази фільтра з порівнянням, регулярними виразами й логічними операторами (наприклад, $[?(@.price > 10 && @.in_stock == true)]). Декілька результатів повертаються як масив; значення видобуваються в порядку слідування в документі.

У чому різниця між JSONC та JSON5?

JSONC — це звичайний JSON плюс рядкові коментарі //, блокові коментарі /* */ і коми наприкінці — популярний для конфігураційних файлів, які редагуються людиною. JSON5 — це надмножина, яка додатково дозволяє ключі без лапок, рядки в одинарних лапках, шістнадцяткові числа/числа з провідною десятковою крапкою та NaN/Infinity. Цей інструмент підтримує JSONC; для вводу JSON5 вам потрібно спочатку перетворити його або використати парсер JSON5.

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

Так, але деревоподібний перегляд і двигун JSONPath масштабуються приблизно лінійно з кількістю вузлів, тому при обсязі понад ~1 МБ / ~50 000 вузлів інтерфейс стає помітно повільнішим. Для великих даних використовуйте перегляд Звичайний замість Дерева, спочатку запустіть перетворення Мініфікувати, якщо вам потрібен лише компактний вивід, або розбийте документ за верхньорівневими ключами. Потокова обробка та JSON Lines (.jsonl) виходять за межі — для них використовуйте CLI на кшталт jq.

Як це порівнюється з jq, jsonlint або вбудованим форматувальником VS Code?

jq неперевершений для скриптових конвеєрів і потокової обробки, а jsonlint покриває сувору валідацію. Перевага цього інструменту в тому, що він робить усе в одному місці — форматування + валідація + перевірка за схемою + JSONPath + глибокий diff + перетворення — не виходячи з браузера. Вбудований форматувальник VS Code справляється з гарним виведенням, але не зі шляхами помилок з урахуванням схеми, JSONPath чи diff/merge.

Чому парсер каже «Unexpected token» на конфігураційному файлі?

Парсер за замовчуванням суворий, тому коментарі //, блоки /* */ та коми наприкінці видають помилку, що вказує на проблемний символ. Панель статусу автоматично запропонує увімкнути режим JSONC, коли шаблон збою відповідає одній з цих особливостей. Якщо повідомлення вказує на повністю взятий у лапки рядок, двічі перевірте неекрановані зворотні слеші або керуючі символи — це інші поширені винуватці.

Чи можу я налаштувати відступ і порядок ключів?

Так. Виберіть 2, 4 або 8 пробілів у елементі керування Відступ і перемкніть Сортувати ключі, щоб виводити ключі об'єкта в алфавітному порядку — корисно для стабільних diff'ів і відтворюваних конфігураційних файлів. Вивід завжди в UTF-8 з рядками, розділеними переводом рядка (без BOM); форматувальник ніколи не переупорядковує елементи масиву, оскільки це змінило б семантику.

Які операції перетворення доступні?

Сплощення перетворює {a:{b:1}} на {"a.b":1} для інструментів, які очікують ключі з точковою нотацією (змінні середовища, прапорці функцій). Відновлення обертає це. Видалити null рекурсивно видаляє всі властивості зі значенням null, Видалити порожні також прибирає порожні рядки, [] і {}, а Мініфікувати видає однорядковий вивід. Перетворення застосовуються до поточного вводу, тож ви можете об'єднувати їх у ланцюжок для побудови конвеєрів.

Чи підтримує інструмент видобування шляхів JSON Pointer?

Так. У переглядачі Дерево при наведенні на будь-який вузол відображається його шлях JSON Pointer (RFC 6901) — наприклад, /store/book/0/author — який можна скопіювати одним кліком. JSON Pointer — це та сама нотація, яку використовують результати схеми та diff для ідентифікації місць, тож ви можете вставити шлях з однієї панелі в іншу, щоб перейти до того самого значення.

Чи можу я поділитися відформатованим результатом з колегою?

Найшвидший спосіб — вставити JSON на його машині, оскільки немає серверного стану, на який можна було б поділитися посиланням. Якщо потрібна передача у стилі постійного посилання, використовуйте Gist або сервіс вставлення з мініфікованим виводом. У будь-якому разі уникайте передачі токенів, секретів чи PII навіть на стороні клієнта, оскільки буфер обміну або консоль колеги, що приймає, можуть їх зберегти.

Чи коректно він обробляє Unicode і великі числа?

Весь ввід обробляється як UTF-8, і сурогатні пари (емодзі, символи CJK) проходять туди й назад без екранування. Числа понад Number.MAX_SAFE_INTEGER (2^53 − 1) втрачають точність, оскільки покладений в основу парсер використовує double-числа IEEE-754 — це особливість специфікації JSON, а не обмеження інструменту. Якщо ви передаєте 64-бітні ID, надсилайте їх як рядки, що й роблять більшість API.