Минификация JSON

Удаляйте лишние пробельные символы. Точно оценивайте экономию.

Данные и форматы
Подготовка редактора…
Ввод
Вывод
Здесь появится результат.

Как пользоваться

  1. Вставьте JSON, откройте файл или попробуйте пример.
  2. Компактный результат обновляется по мере ввода. Оцените уменьшение размера.
  3. Скопируйте или скачайте минифицированный результат.

Меньше JSON, все значения на месте

Минификация удаляет отступы, переводы строк и другие лишние пробельные символы вне строк JSON. Результат остаётся обычным текстом JSON, который может прочитать стандартный JSON-парсер.

Используйте её для компактных тестовых данных, однострочного тела запроса или файла, которому не нужны удобные для человека отступы. Панель результата сравнивает фактические размеры UTF-8, а не количество символов.

Как работает минификация

Инструмент проверяет документ и сканирует токены JSON. Токены пробельных символов вне строк пропускаются; исходный текст каждого оставшегося токена копируется в результат. Пробел в кавычках или экранированный перевод строки являются частью строки и сохраняются.

Результат сохраняет запись чисел, например 1.00, 1e+30 и -0. Также сохраняются порядок свойств и повторяющиеся имена: это помогает избежать неожиданных изменений в приложениях, которые по-разному обрабатывают такие детали.

Пробельные символы вне строк
Читаемый ввод
{
  "message": "hello world",
  "values": [1, 2, 3]
}
Компактный вывод
{"message":"hello world","values":[1,2,3]}

Пробел в “hello world” принадлежит строке и сохраняется. Окружающие отступы и переводы строк удаляются.

Как понимать сравнение размеров

Размеры ввода и вывода измеряются в байтах UTF-8. Сэкономленные байты — размер ввода минус размер вывода; процент — эта разница, делённая на размер ввода. Эмодзи и многие неанглийские символы занимают больше одного байта.

Уже компактный документ может не уменьшиться. Файл с большим количеством отступов может сократиться заметно. Если включить необязательный перевод строки в конце, результат может оказаться немного больше уже компактного ввода; инструмент честно сообщает об этом.

Минификация отличается от сжатия

Минификация создаёт текст JSON. Сжатие HTTP, например gzip или Brotli, кодирует байты ответа для передачи и требует декодирования. Сервер может использовать оба подхода, но процент в этом инструменте отражает только изменение текстового JSON, а не экономию при передаче после HTTP-сжатия.

Ограничения обработки

До 5 МиБ входных данных UTF-8, 20 МиБ результата, 128 уровней вложенности, 250 000 просканированных токенов и 10 секунд на запуск. Для больших документов может понадобиться более мощное устройство.

?

Частые вопросы

Выполняется ли минификация автоматически?

Да. Результат только для чтения обновляется после короткой паузы, не меняя ввод. Отключите автоминификацию, чтобы запускать вручную кнопкой «Минифицировать JSON» или сочетанием Ctrl/⌘ + Enter.

Что происходит, если ввод становится некорректным?

Предыдущий корректный результат остаётся видимым для сравнения. Кнопки «Копировать», «Скачать» и «Использовать как ввод» недоступны, а данные об экономии скрываются, пока текущий ввод не даст корректный результат. Очистка опустошает оба редактора.

Удаляет ли минификация пробелы внутри строк?

Нет. Пробелы внутри строк в кавычках, экранированные символы и закодированные переводы строк сохраняются. Удаляются только лишние пробельные символы вне строк.

Это то же самое, что сжатие gzip?

Нет. Скачивается обычный текстовый файл .json, а не сжатый архив. Ваш сервер может отдельно применять gzip или Brotli для передачи по HTTP.

Изменится ли запись чисел?

Нет. Большие целые числа, нули в дробной части, экспоненциальная запись и отрицательный ноль сохраняют точное написание. Минификация не преобразует их в значения с плавающей точкой.

Почему результат не стал меньше?

Возможно, лишних пробельных символов нет. Выбранный перевод строки в конце добавляет байт, поэтому уже компактный ввод может немного увеличиться. Сравнение размеров учитывает этот выбор.

Почему компактный результат всё ещё занимает несколько строк?

Перенос строк меняет отображение длинного текста в редакторе. Он не добавляет переводы строк в скопированный или скачанный JSON. Отключите перенос, чтобы просмотреть текст в одной визуальной строке.

Можно ли снова сделать результат читаемым JSON?

Да. Используйте форматирование JSON, чтобы снова добавить отступы. Оно создаст читаемый JSON, но не восстановит точное расположение пробельных символов, удалённых при минификации.

Покидает ли JSON моё устройство?

Нет. Вставленный текст и локальные файлы обрабатываются в браузере. DevToolsy не загружает документы на сервер и не сохраняет их историю. Если результат нужен позже, скачайте его перед уходом со страницы.

Найдите следующий инструмент

Язык

Сменить язык? Текущие данные будут очищены. Сначала скопируйте или скачайте нужные результаты.