Как пользоваться
- Вставьте JSON, откройте файл или попробуйте пример.
- Настройте параметры. Результат обновляется по мере ввода.
- Скопируйте или скачайте форматированный результат.
Знакомство с 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 и перевод строки в конце — соглашения о выводе. Сортировка ключей — отдельное необязательное изменение: она рекурсивно упорядочивает члены объектов по декодированным именам с помощью детерминированного сравнения с учётом регистра. Порядок массивов и относительный порядок повторяющихся имён сохраняются. Это нужно для чтения и сравнения изменений; это не схема канонизации для криптографических подписей.
{"name":"Ada","roles":["developer","reviewer"],"active":true}{
"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 на сервер и не сохраняет историю документов. Если результат нужен позже, скопируйте или скачайте его перед уходом.