YamlBox

JSON инструменты · 6 минута чтения

JSON форматтер: красивый, минимизированный и действительно

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

Обновлено

Pretty-print: для людей и пул-реквестов

Отступ JSON доступен для просмотра JSON. Два пробела являются соглашением в большинстве баз кода JavaScript и соответствуют значению по умолчанию в `JSON.stringify(value, null, 2)`; четыре пробела подходят редакторам, настроенным таким образом. Выбор форматирования имеет меньшее значение, чем согласованность, поскольку смешанные отступы превращают каждый последующий разброс в шум. Если ваш JSON сгенерирован, установите отступ в генераторе один раз и позвольте форматтеру применить его локально для вставленных полезных данных.

Минимизировать: для полезной нагрузки в сети

Пробелы в JSON не являются обязательными, поэтому их удаление позволит сэкономить. В ответе API размером 200 КБ разница обычно составляет 15–30 процентов байтов, что имеет значение, когда бюджетом является мобильное соединение или заголовок кэша, который вы пытаетесь соблюдать. Минимизация также является правильным шагом перед сохранением полезных данных в столбце базы данных или встраиванием их в URL — просто минимизируйте на этапе сборки, а не вручную, поскольку минимизация вручную JSON — это то место, где отладка заканчивается.

Валидация: ошибки, с которыми вы действительно столкнетесь

JSON — намеренно маленькая грамматика, поэтому ее ошибки так повторяются. Почти каждая недействительная ошибка JSON связана с одной из пяти привычек, полученных из JavaScript или YAML:

  • Завершающие запятые — `{"a": 1,}` является допустимым JavaScript и недопустимым JSON.
  • Одинарные кавычки или ключи без кавычек — `{a: 'b'}` должно стать `{"a": "b"}`.
  • Комментарии — `// note` и `/* note */` вообще не место в JSON.
  • Неэкранированные управляющие символы — буквальные символы новой строки внутри строки должны быть `\n`.
  • Объединенные объекты — два объекта верхнего уровня, расположенные рядом, обычно из файла журнала, по одному документу JSON в каждой строке.

Форматировщик должен указать вам строку, столбец и показать отрывок. Один только «Неожиданный токен» заставляет вас прокручивать; «строка 84, столбец 17 — запятая перед }» — это исправление.

Зачем проверять перед отладкой

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

Большие файлы и конфиденциальность

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

JSON Форматер — часто задаваемые вопросы

В чем разница между форматированием и проверкой JSON?

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

Насколько меньше минимизировано JSON?

Обычно 15–30 процентов, в зависимости от глубины вложенности документа и длины ключей. Минимизация осуществляется без потерь: пробелы между токенами не имеют значения в JSON, поэтому минимизированный документ анализируется до точно такого же значения.

Безопасно ли форматировать JSON, содержащий секреты, в браузере?

Да, когда форматтер работает полностью на стороне клиента. Загрузка и запрос на сервер не выполняются, поэтому токены в полезной нагрузке остаются на вашей вкладке, а страница продолжает работать, когда сеть отключена, что вы можете проверить самостоятельно.

Инструменты, упомянутые в этом посте

Просмотрите полный список инструментов 19

Еще статьи для чтения

6 минута чтения

JSON diff: сравнение данных в том виде, в каком они на самом

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

6 минута чтения

Схема от JSON до JSON: от образца полезной нагрузки до

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

Все 19 публикации →