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

Вставьте ответ из вкладки «Сеть» в браузере, из curl, Postman или файла логов. HTTP-заголовки, обёртки JSONP и дважды закодированный JSON распознаются автоматически, а большие ID сохраняют все цифры.

Бесплатно · Без регистрации

Вставьте JSON, откройте файл или загрузите пример. Результат обновляется по мере ввода.

Результат
Вид результата

      
      
    
Формат

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

  1. Скопируйте ответ. В Chrome, Edge или Firefox откройте инструменты разработчика, выберите запрос на вкладке «Сеть» и скопируйте ответ. В терминале используйте curl -s или curl -i, чтобы включить заголовки.
  2. Вставьте его в поле ввода. Заголовки, обёртка JSONP или JSON, сохранённый как экранированная строка, будут удалены или декодированы, а заметка сообщит, что изменилось.
  3. Переключитесь на дерево, чтобы изучить вложенные данные. Нажмите на значение, чтобы увидеть его путь, например $.data[0].attributes.email, и скопируйте его для кода или фильтра jq.
  4. Скопируйте или скачайте отформатированный JSON, либо выберите «Сжать», чтобы получить компактное тело запроса.

Почему стоит использовать этот инструмент

Сырые HTTP-ответы

Вставьте вывод curl -i со строкой статуса и заголовками. Заголовки будут пропущены, а тело отформатировано.

JSONP и двойное кодирование

Обёртки callback({...}) удаляются, а строка JSON со множеством \" декодируется в настоящий JSON.

64-битные ID без искажений

ID больше 9 007 199 254 740 991 показываются ровно так, как их прислал сервер, с пометкой, что JavaScript их округлил бы.

Пути к вложенным значениям

Нажмите на любое значение в дереве, чтобы скопировать путь для JavaScript, jq или проверок в тестах.

Предупреждение о повторяющихся ключах

Если в объекте ключ повторяется, вы узнаете какой, ведь большинство клиентов сохраняет только последнее значение.

Безопасно для реальных ответов

Всё работает в вашем браузере. Токены, cookie и данные клиентов из ответа никуда не загружаются.

Откуда скопировать ответ API

ИсточникКак скопировать JSON
Chrome, Edge, FirefoxИнструменты разработчика (F12) › Сеть › выберите запрос › вкладка «Ответ» › скопировать
SafariРазработка › Показать веб-инспектор › Сеть › выберите запрос › Ответ
curlcurl -s https://api.example.com/items для тела ответа или curl -i вместе с заголовками
Postman, InsomniaПанель ответа › Body › Raw, затем скопировать
Логи сервераСкопируйте строку лога целиком. Если она обрезана, откройте сам файл логов.

Почему ответ API трудно читать

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

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

Что распознаёт эта страница

  • HTTP-заголовки перед телом ответа, например из curl -i или лога прокси.
  • Ответы JSONP вроде callback({"items": []}); от старых API.
  • Дважды закодированный JSON: строка вида "{\"id\":1}", которую сервер или логгер экранировал дважды.
  • Повторяющиеся ключи, которые разные парсеры обрабатывают по-разному.
  • Целые числа, слишком большие для чисел JavaScript — частая проблема с ID баз данных и соцсетей.
  • Синтаксические ошибки в написанных вручную телах запросов: строка, столбец и исправление типичных ошибок одним нажатием.

Большие ID в JavaScript

Многие API возвращают 64-битные целые ID. JavaScript точно представляет целые числа только до 9 007 199 254 740 991, поэтому response.json() без всякой ошибки превращает 9007199254740993 в 9007199254740992.

Хорошо спроектированные API отдают такие ID строкой, например "id_str". Если ваш API так не делает, разбирайте ответ библиотекой с поддержкой BigInt или попросите поставщика API отдавать ID строками. Этот форматер показывает точные цифры, чтобы вы заметили проблему.

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

Можно вставить ответ вместе с HTTP-заголовками?

Да. Если текст начинается со строки статуса вроде HTTP/1.1 200 OK, всё до первой пустой строки считается заголовками и пропускается. Форматируется только тело ответа.

Безопасно ли вставлять ответы с токенами или личными данными?

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

Почему в моём JSON повсюду \"?

JSON закодировали дважды, и теперь это строка, внутри которой JSON. Эта страница декодирует его автоматически. В своём коде вызовите JSON.parse дважды или исправьте сервер, чтобы он не превращал данные в строку второй раз.

Что такое JSONP?

JSONP оборачивает JSON в вызов функции JavaScript, например callback({...}), чтобы старые браузеры могли загружать данные с другого домена. Современные API используют CORS. Эта страница снимает обёртку, чтобы данные можно было прочитать.

Как использовать путь в коде?

Путь $.data[0].id означает: взять массив data, его первый элемент, а затем поле id. В JavaScript это response.data[0].id, в jq — .data[0].id.

Можно ли форматировать ответы XML или GraphQL?

Ответы GraphQL — это JSON, поэтому они подходят. XML — другой формат, здесь он не поддерживается.

Похожие инструменты

Нужно что-то создать?

Расскажите, что вы хотите построить.

Расскажите, что вам нужно создать: от простого сайта до полноценного приложения, AI-решения, автоматизации или индивидуальной системы.

Расскажите, что хотите создать. Мы рассматриваем каждую заявку и отвечаем по email.

Контакты

Спасибо, ваша заявка отправлена.

Мы рассмотрим детали и ответим по email.