JSON Форматтер
Форматируйте и проверяйте ваши JSON-данные для удобства чтения и отладки. Поддерживает минимизацию, форматирование и подсветку синтаксиса.
Как использовать JSON Форматтер
Шаги использования
- Вставьте ваши JSON-данные в левое поле ввода.
- Нажмите кнопку "Форматировать" для преобразования JSON в читаемый вид.
- Нажмите кнопку "Минимизировать" для сжатия JSON-данных в одну строку.
- Нажмите кнопку "Автоисправление" для автоматического исправления распространённых синтаксических ошибок JSON.
- Нажмите кнопку "Копировать" для копирования результата в буфер обмена.
- Нажмите кнопку "Очистить" для очистки полей ввода и вывода.
- Используйте переключатель "Экранирование вывода" для экранирования вывода при вставке в программный код.
- Используйте переключатель "Тёмная тема" для изменения темы отображения.
Пример экранированного вывода
При включении экранирования вывода 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
Связанные инструменты
JSON YAML Конвертер
Преобразование между форматами JSON и YAML с пользовательскими отступами и поддержкой потокового/блочного стиля
JSON CSV Конвертер
Преобразование между форматами JSON и CSV с развертыванием вложенных объектов и поддержкой пользовательских разделителей
XML Форматтер
Форматирование и валидация XML данных с подсветкой синтаксиса