Форматирование JSON

Форматируйте, изучайте и копируйте JSON. Ваши данные остаются в браузере.

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

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

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

Знакомство с JSON

JSON — текстовый формат для обмена структурированными данными. Он часто встречается в ответах API, файлах конфигурации и экспортированных записях. Небольшой набор типов значений делает его удобным для передачи данных между разными языками программирования.

Форматирование упрощает изучение структуры. Отступы показывают, какие значения связаны; переводы строк помогают просматривать вложенные записи. Эти способы оформления не меняют данные, представленные корректным документом.

Значения и структура

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

ТипПримерЗначение
Объект{"name": "Ada"}Именованные свойства в фигурных скобках.
Массив["red", "blue"]Упорядоченная последовательность в квадратных скобках.
Строка"Hello, world"Текст в двойных кавычках.
Число-12.5e2Десятичное число с необязательной экспонентой.
Логическое значениеtrue / falseОдно из двух логических значений.
Пустое значениеnullЯвное значение null, а не пропущенное свойство.

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

Используйте двойные кавычки для имён свойств и строк. Двоеточие отделяет имя от значения; запятые разделяют члены объекта и элементы массива. Не ставьте запятую после последнего члена или элемента. Комментарии, одинарные кавычки и выражения JavaScript не входят в строгий JSON.

Литералы true, false и null пишутся строчными буквами. Числа используют десятичную запись с необязательными минусом, дробной частью и экспонентой. Ведущие нули, плюс в начале, NaN и Infinity недопустимы. В строках экранируйте кавычки, обратные косые черты и управляющие символы; перевод строки нужно записывать escape-последовательностью, например \n.

Для надёжного обмена данными имена в объекте должны быть уникальными. При повторении имён разные приложения могут сохранять разные значения. Форматтер сообщает о дубликатах и сохраняет их, чтобы вы решили, как их устранить. Одна лишь проверка синтаксиса не подтверждает соответствие документа контракту API или JSON Schema.

Что сохраняется при форматировании

DevToolsy проверяет ввод и меняет пробельные символы вокруг исходных токенов. Он сохраняет запись чисел, например 900719925474099312345, 19.9900, 1e+400 и -0, а также исходные escape-последовательности строк. Это позволяет избежать округления при разборе и повторной сериализации чисел как значений JavaScript с плавающей точкой. Приложение, читающее результат, по-прежнему определяет собственную числовую точность.

Отступы, окончания строк LF или CRLF и перевод строки в конце — соглашения о выводе. Сортировка ключей — отдельное необязательное изменение: она рекурсивно упорядочивает члены объектов по декодированным именам с помощью детерминированного сравнения с учётом регистра. Порядок массивов и относительный порядок повторяющихся имён сохраняются. Это нужно для чтения и сравнения изменений; это не схема канонизации для криптографических подписей.

Небольшой ответ API
Компактный ввод
{"name":"Ada","roles":["developer","reviewer"],"active":true}
Форматирование · 2 пробела
{
  "name": "Ada",
  "roles": [
    "developer",
    "reviewer"
  ],
  "active": true
}

Отступы меняют представление. Имена свойств, значения и порядок элементов массива остаются прежними.

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

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

?

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

Меняет ли автоформатирование мой ввод?

Нет. После короткой паузы обновляется результат только для чтения, а ввод остаётся таким, каким вы его написали. Изначально автоформатирование включено. Отключите его, чтобы запускать вручную кнопкой «Форматировать JSON» или сочетанием Ctrl/⌘ + Enter.

Что происходит, пока мой JSON не завершён?

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

Округляет ли форматирование большие числа или меняет escape-последовательности строк?

Нет. Исходные токены чисел и написание escape-последовательностей строк сохраняются. Это относится к длинным целым числам, нулям в конце дробной части, экспоненциальной записи и отрицательному нулю. Другие приложения могут интерпретировать эти числа с иной точностью.

Меняет ли сортировка ключей порядок массивов?

Нет. Сортировка ключей рекурсивно применяется только к объектам. Массивы сохраняют свою последовательность, а повторяющиеся имена — относительный порядок. По умолчанию сортировка отключена.

Может ли форматтер исправить комментарии или лишние запятые в конце?

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

JSON Beautifier — то же самое, что JSON Formatter?

Да. На этой странице beautify, pretty-print и format означают добавление к JSON удобных для чтения отступов и переводов строк. Для компактного документа используйте минификацию JSON.

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

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

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

Язык

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