Що таке мінімізація JSON?
JSON (JavaScript Object Notation) — це легкий текстовий формат обміну даними, визначений у RFC 8259 та ECMA-404. Мінімізація видаляє кожен пробіл, табуляцію та переведення рядка поза рядковими літералами — значення зберігаються байт у байт, видаляються лише косметичні пробіли. Вивід розбирається точно у те саме значення, що й введення.
Як працює мінімізація JSON?
Ваше введення обробляється повністю у вашому браузері за допомогою вбудованих функцій JSON.parse та JSON.stringify. Основні кроки:
- Ваше введення зчитується з текстової області дослівно — кожен байт, який ви вставили, зберігається в пам'яті локально.
- Браузер розбирає його за допомогою
JSON.parse. Якщо введення не є валідним JSON, парсер кидаєSyntaxError, що перехоплюється та відображається дослівно — ваш текст ніколи не залишає сторінку. - Коли розбір успішний, розібране значення повторно виводиться за допомогою
JSON.stringify(value)— без аргументу відступу — даючи найкоротшу валідну форму того самого значення. - Розмір у байтах як оригінального, так і мінімізованого тексту обчислюється за допомогою
new TextEncoder().encode(...).byteLength— та сама кількість байтів UTF-8, яку HTTP-сервер побачить у мережі. - Вивід записується у текстову область лише для читання, смужка метрик повідомляє дельти байтів із відсотком збережених, а кнопка «Завантажити» пакує результат у файл
.min.json, готовий до відправки.
Чому варто мінімізувати JSON цим інструментом?
- Конфіденційність: кожен прохід розбору, мінімізації та обчислення метрик відбувається у вашому браузері. JSON ніколи не потрапляє на наші сервери — без завантаження, без телеметрії, без акаунту.
- Реальні числа в байтах: початковий розмір, мінімізований розмір і економія обчислюються за допомогою TextEncoder, тому ви бачите фактичні дельти байтів UTF-8, за які стягуватиме плату CDN або API-шлюз.
- Нульова втрата даних: мінімізація є суто косметичною — кожне значення розбирається в те саме дерево JSON, тому вона безпечна для навантажень продакшну, маніфестів і вбудованих фікстур.
- Швидко: чисті
JSON.parse+JSON.stringifyмиттєво обробляють типові навантаження розміру буфера обміну, без сторонніх бібліотек для завантаження.
Які поширені застосування мінімізації JSON?
Видалення незначущих пробілів з JSON трапляється у веб-розробці, інженерії даних та вбудованих системах:
- Зменшення навантаження API: скорочення тіл запитів і відповідей до того, як вони перетнуть тарифікований API-шлюз, платне вихідне з'єднання або супутниковий канал.
- Вбудовування у HTML: розміщення JSON-блобу в атрибут
data-*або тег<script type="application/json">без витоку пробілів форматера у відрендерену сторінку. - Менший localStorage: скорочення використання квоти localStorage / IndexedDB шляхом запису мінімізованого JSON замість JSON з красивим друком, що особливо цінно на мобільних браузерах із суворими лімітами зберігання на джерело.
Як виглядає приклад мінімізації JSON?
Вставте файл конфігурації з красивим друком розміром 1,2 КБ (близько 1 225 байтів з відступами двома пробілами) і натисніть Мінімізувати — зазвичай він згортається до менш ніж 0,4 КБ, економія 66%, з кожним ключем і значенням збереженими точно. Завантажуваний файл output.min.json є байтово-ідентичним до того, що HTTP-сервер видав би з Content-Type: application/json без проміжного ПО форматування.
Це працює у моєму браузері?
Так. Конвеєр мінімізації — це чисті JSON.parse + JSON.stringify, що виконуються у вкладці браузера. Нічого не завантажується, жоден сервіс-воркер не проксує ваше введення, і сторінка робить нульову кількість мережевих запитів для самого кроку мінімізації. Єдиний вихідний трафік — це стандартні ресурси завантаження сторінки (CSS, шрифти, аналітика) — ваш JSON ніколи не потрапляє до Ultim8Soft.
Навіщо мінімізувати JSON?
Мінімізований JSON розбирається точно у те саме значення, що й джерело з красивим друком, але займає менше місця в мережі та в сховищі. Менші навантаження означають нижчі рахунки за CDN egress, швидші мобільні завантаження, менший тиск на пам'ять усередині сервіс-воркерів і щільніше розміщення у конвертах фіксованого розміру, таких як навантаження JWT, вбудовані атрибути HTML data-* та квоти localStorage. Для API з великим обсягом економія байтів накопичується — скорочення на 30% на ендпоінті 1 ГБ/день економить приблизно 9 ГБ на місяць.
Чи мінімізація втрачає дані?
Ні. Мінімізація JSON лише видаляє пробіли, що знаходяться поза рядковими літералами — пробіли, табуляції та переведення рядка, які специфікація вже класифікує як незначущі. Кожен ключ, значення, число, екранована послідовність та символ рядка зберігаються байт у байт. Вивід розбирається у значення, яке є deepEqual до введення. Зникає лише косметичний відступ.
У чому різниця між форматером і мінімізатором?
Супутній JSON Форматер діє у зворотному напрямку: він розширює пробіли, щоб люди могли читати вкладені структури. Мінімізатор видаляє ці пробіли назад для передачі та зберігання. Два інструменти є оберненими — перетворення JSON-документа через Форматер → Мінімізатор дає той самий байтовий рядок, з якого ви починали мінімізатор, оскільки обидва оперують розібраним значенням, а не косметичним розміткою.
Цей JSON-мінімізатор використовує той самий парсер, що і Node.js, Deno або ваш браузер, і дає вивід, байтово-ідентичний тому, що видав би HTTP-сервер без проміжного ПО форматування. Вставте будь-який JSON вище, скопіюйте вивід або завантажте його як .min.json.