CoderTools

JSON Форматтер

Форматируйте и проверяйте ваши JSON-данные для удобства чтения и отладки. Поддерживает минимизацию, форматирование и подсветку синтаксиса.

Как использовать JSON Форматтер

Шаги использования

  1. Вставьте ваши JSON-данные в левое поле ввода.
  2. Нажмите кнопку "Форматировать" для преобразования JSON в читаемый вид.
  3. Нажмите кнопку "Минимизировать" для сжатия JSON-данных в одну строку.
  4. Нажмите кнопку "Автоисправление" для автоматического исправления распространённых синтаксических ошибок JSON.
  5. Нажмите кнопку "Копировать" для копирования результата в буфер обмена.
  6. Нажмите кнопку "Очистить" для очистки полей ввода и вывода.
  7. Используйте переключатель "Экранирование вывода" для экранирования вывода при вставке в программный код.
  8. Используйте переключатель "Тёмная тема" для изменения темы отображения.

Пример экранированного вывода

При включении экранирования вывода JSON-строки экранируются для прямой вставки в программный код. Например:

Обычный вывод::

{ "message": "Hello \"World\"", "newline": "Line 1\nLine 2" }

Экранированный вывод::

{\n \"message\": \"Hello \\\"World\\\"\",\n \"newline\": \"Line 1\\nLine 2\"\n}

Функциональность

  • Автоформатирование: Улучшает читаемость JSON-данных с правильными отступами и переносами строк.
  • Проверка синтаксиса: Проверяет синтаксические ошибки в JSON-данных и выводит сообщения об ошибках.
  • Подсветка синтаксиса: Выделяет пары ключ-значение и типы данных JSON разными цветами.
  • Функция минимизации: Преобразует отформатированный JSON в компактную форму одной строки для уменьшения размера данных.
  • Автоисправление: Автоматически исправляет распространённые синтаксические ошибки JSON, такие как незакавыченные ключи и завершающие запятые.
  • Экранирование вывода: Экранирует JSON-строки для прямой вставки в программный код.
  • Локальная обработка: Вся обработка данных происходит в вашем браузере, ничего не отправляется на серверы.
  • Обработка в реальном времени: Изменения во входных данных автоматически обрабатываются, и результаты обновляются.

Что такое JSON?

JSON (JavaScript Object Notation) — это облегчённый формат обмена данными, который легко читается и пишется человеком, а также легко разбирается и генерируется машинами. JSON основан на подмножестве языка JavaScript, но является полностью языково-независимым текстовым форматом, поддерживаемым большинством языков программирования для разбора и генерации. JSON был предложен Дугласом Крокфордом в начале 2000-х годов и стандартизирован в ECMA-404 и RFC 8259.

Правила синтаксиса JSON

  • Данные представлены в виде пар ключ/значение
  • Данные разделяются запятыми
  • Фигурные скобки {} содержат объекты
  • Квадратные скобки [] содержат массивы
  • Ключи должны быть строками, заключёнными в двойные кавычки
  • Значения могут быть строками, числами, объектами, массивами, логическими значениями или null

Типы данных JSON

Тип Описание Пример
Строка Последовательность Unicode-символов в двойных кавычках "Hello World"
Число Целое или вещественное число, нечисловые значения не поддерживаются 42, 3.14
Объект Неупорядоченная коллекция пар ключ/значение {"name": "John"}
Массив Упорядоченная коллекция значений [1, 2, 3]
Логический true или false true
null Пустое значение null

Алгоритм форматирования JSON

Процесс форматирования JSON в основном включает два шага: разбор и регенерацию. Сначала парсер читает JSON-строку и строит представление в памяти, затем форматтер регенерирует строку с определёнными отступами и переносами строк. Вот упрощённый процесс форматирования:

// Simplified JSON formatting implementation
function formatJSON(jsonStr, indentSize = 2) {
  try {
    // Step 1: Parse JSON string to JavaScript object
    const obj = JSON.parse(jsonStr);
    
    // Step 2: Convert object back to string with indentation
    return JSON.stringify(obj, null, indentSize);
  } catch (e) {
    // Handle invalid JSON
    throw new Error("Invalid JSON: " + e.message);
  }
}

// Usage example
const uglyJson = '{"name":"John","age":30,"city":"New York"}';
const prettyJson = formatJSON(uglyJson);
console.log(prettyJson);
/*
Output:
{
  "name": "John",
  "age": 30,
  "city": "New York"
}
*/

Сравнение JSON и XML

Характеристика JSON XML
Синтаксис Лаконичный, использует фигурные и квадратные скобки Более сложный, использует теги и атрибуты
Размер файла Обычно меньше XML Обычно больше JSON
Скорость разбора Быстрее Медленнее
Типы данных Поддерживает базовые типы данных Все данные — текст
Пространства имён Не поддерживаются Поддерживаются
Комментарии Не поддерживаются Поддерживаются
Удобство использования Более дружественный для разработчиков Более структурированный и строгий

Распространённые проблемы и решения

Проблема: Ошибка разбора JSON — отсутствует запятая или скобка

Решение: Проверьте все закрывающие скобки объектов и массивов, убедитесь, что после каждой пары ключ/значение стоит запятая (кроме последней).

Проблема: Ошибка разбора JSON — недопустимое значение ключа

Решение: Убедитесь, что все ключи заключены в двойные кавычки, одинарные кавычки или незакавыченные имена ключей не поддерживаются.

Проблема: Проблема с размером JSON-данных

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

Для получения дополнительной официальной информации о JSON, пожалуйста, обратитесь к следующим ресурсам: JSON.org | RFC 8259 | Wikipedia: JSON