Util.zone

Форматтер JSON

Форматируйте, валидируйте JSON, конвертируйте в YAML, XML, CSV

О JSON форматтере и валидаторе

Онлайн JSON-форматтер Util.zone — это мощный инструмент для разработчиков, DevOps-инженеров, тестировщиков и аналитиков данных. Он предназначен для быстрого форматирования («beautify»), минификации («minify»), синтаксической валидации и конвертации документов JSON.

Главные особенности

  • Интеллектуальная валидация с подсветкой ошибок: мгновенно указывает точную строку и характер синтаксической ошибки (незакрытая скобка, висячая запятая, неверные кавычки).
  • Конвертация форматов: поддержка взаимного преобразования между JSON, YAML, XML и CSV.
  • Минификация в один клик: быстрое сжатие структуры для уменьшения объема данных в сетевых запросах и конфигах.
  • 100% приватность на клиенте: инструмент работает автономно в вашем браузере. Данные не передаются по сети, что гарантирует полную конфиденциальность коммерческой тайны, логов и API-токенов.
  • Поддержка больших объемов данных: оптимизированный редактор легко справляется со структурами объемом в несколько мегабайт.

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

  1. Вставьте исходный JSON в левое поле редактора (или начните вводить структуру с нуля).
  2. Выберите операцию в выпадающем меню панели инструментов (форматирование Pretty, сжатие Minify либо конвертация в YAML, XML или CSV).
  3. Проверьте результат: отформатированные данные появятся в правом поле. При наличии синтаксических ошибок в правом поле отобразится подробное сообщение с описанием проблемы.
  4. Скопируйте результат нажатием кнопки копирования над полем вывода.

Спецификация и стандарты JSON

JSON (JavaScript Object Notation) — текстовый формат обмена данными, исторически основанный на синтаксисе литералов объектов. Формат является полностью языконезависимым: парсеры и сериализаторы существуют для всех современных языков программирования (Python, Go, Java, C#, Rust, PHP, C++ и др.).

  • Стандартизация: Формат стандартизирован в документах:
    • RFC 8259 (IETF, The JavaScript Object Notation Data Interchange Format);
    • ECMA-404 (The JSON Data Interchange Standard);
    • ISO/IEC 21778:2017.
  • История создания: Формат был специфицирован Дугласом Крокфордом (Douglas Crockford) в начале 2000-х годов как легковесная и простая в разборе альтернатива многословному языку XML (Extensible Markup Language).

Поддерживаемые типы данных

Стандарт JSON строго определяет 6 базовых типов данных:

Тип данных Описание Пример в JSON
Object (Объект) Неупорядоченный набор пар «ключ: значение», заключенный в фигурные скобки {}. Ключ обязан быть строкой в двойных кавычках. {"id": 101, "name": "Иван"}
Array (Массив) Упорядоченная последовательность значений любого типа, заключенная в квадратные скобки []. [1, "два", true, null]
String (Строка) Последовательность символов Unicode в двойных кавычках с экранированием через обратный слэш (\n, \t, \", \\, \uXXXX). "Привет, мир!\n"
Number (Число) Десятичные числа (целые или вещественные), поддерживается экспоненциальная запись (1e6, -3.14). Запрещены ведущие нули. 42, -17.5, 2.5e-3
Boolean (Логический) Литеральные константы в нижнем регистре. true, false
Null (Пустое значение) Литерал отсутствия значения. null

Обратите внимание: специальные константы undefined, функции, регулярные выражения, даты Date и значения NaN и Infinity не поддерживаются стандартом JSON.


Типовые ошибки при работе с JSON

При ручном редактировании или экспорте данных чаще всего возникают следующие проблемы:

1. Висячая запятая (Trailing Comma)

В стандартном JSON запятая является строго разделителем элементов, а не терминатором:

// ОШИБКА:
{
  "name": "Util.zone",
  "active": true,
}

// ПРАВИЛЬНО:
{
  "name": "Util.zone",
  "active": true
}

2. Одинарные кавычки

Использование одинарных кавычек ' для ключей или строк категорически запрещено:

// ОШИБКА:
{'title': 'Инструменты'}

// ПРАВИЛЬНО:
{"title": "Инструменты"}

3. Неэкранированные спецсимволы

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

// ОШИБКА:
{"quote": "Он сказал: "Привет""}

// ПРАВИЛЬНО:
{"quote": "Он сказал: \"Привет\""}

4. Недопустимые числовые значения

// ОШИБКА:
{"value": NaN, "max": Infinity, "hex": 0xFF}

// ПРАВИЛЬНО:
{"value": null, "max": null, "hex": 255}

Сравнение форматов: JSON, YAML и XML

Критерий JSON YAML XML
Основное назначение REST API, передача данных по сети Конфигурационные файлы (Kubernetes, CI/CD) Корпоративные интеграции, SOAP, документы
Читаемость человеком Высокая Очень высокая Средняя (многословная)
Скорость парсинга Экстремально высокая (нативная поддержка движками) Средняя / низкая Средняя
Поддержка комментариев Нет (запрещены спецификацией) Да (#) Да (<!-- ... -->)
Типизация Строгие базовые типы (строка, число, boolean) Автоматический вывод типов, якоря, ссылки Только текст и атрибуты
Безопасность парсинга Высокая Риск уязвимостей в некоторых библиотеках парсинга Уязвимости XXE (XML External Entity)

Безопасность при парсинге JSON

  1. Никогда не используйте функции динамического исполнения кода (eval) для разбора JSON: это создает критическую уязвимость удаленного исполнения произвольного кода (XSS / Code Injection). Всегда используйте специализированные безопасные синтаксические парсеры (например, стандартный JSON.parse).
  2. Защита от Prototype Pollution (загрязнение прототипа): при глубоком слиянии невалидированных JSON-объектов ключи __proto__, constructor и prototype могут несанкционированно модифицировать базовые свойства системных объектов.
  3. Ограничение глубины вложенности: при парсинге входящих JSON от внешних клиентов на сервере следует ограничивать максимальную глубину дерева (например, не более 32 или 64 уровней), чтобы предотвратить атаки типа «отказ в обслуживании» (ReDoS / исчерпание стека).

Часто задаваемые вопросы