Spec-Zone.ru › Web APIs

Ответ: метод json()

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2017 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Метод json() интерфейса Response принимает поток Response и считывает его до конца. Он возвращает промис, который разрешается результатом парсинга текста тела как JSON.

Обратите внимание, что, несмотря на название метода json(), результат не является JSON, а является результатом преобразования входного JSON в объект JavaScript.

Синтаксис

json()

Параметры

Нет.

Возвращаемое значение

A Promise, который разрешается в объект JavaScript. Этот объект может быть чем угодно, что может быть представлено в формате JSON — объектом, массивом, строкой, числом и т. д.

Исключения

DOMException AbortError

Запрос был отменён.

TypeError

Выбрасывается по одной из следующих причин:

  • Тело ответа повреждено или заблокировано.
  • Произошла ошибка при декодировании содержимого тела (например, из-за неправильного Content-Encoding заголовка).
SyntaxError

Тело ответа невозможно разобрать как JSON.

Примеры

В нашем примере обработки JSON с помощью fetch (запустите fetch JSON онлайн), мы создаём новый запрос с помощью конструктора Request(), а затем используем его для получения файла .json. При успешном выполнении fetch мы считываем и анализируем данные с помощью json(), затем считываем значения из полученных объектов, как ожидалось, и вставляем их в элементы списка, чтобы отобразить данные о наших продуктах.

const myList = document.querySelector("ul");
const myRequest = new Request("products.json");

fetch(myRequest)
  .then((response) => response.json())
  .then((data) => {
    for (const product of data.products) {
      const listItem = document.createElement("li");
      listItem.appendChild(document.createElement("strong")).textContent =
        product.Name;
      listItem.append(` can be found in ${product.Location}. Cost: `);
      listItem.appendChild(document.createElement("strong")).textContent =
        `£${product.Price}`;
      myList.appendChild(listItem);
    }
  })
  .catch(console.error);

Спецификации

Спецификация
Fetch
# ref-for-dom-body-json①

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
json 42 14 39 29 10.1 42 39 29 10.3 4.0 42

См. также

  • API сервисных работников
  • Cross-Origin Resource Sharing (CORS)
  • HTTP

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Response/json

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API