Ответ: метод json()
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2017 года.
Примечание: Эта функция доступна в Web Workers.
Метод json() интерфейса Response принимает поток Response и считывает его до конца. Он возвращает промис, который разрешается результатом парсинга текста тела как JSON.
Обратите внимание, что, несмотря на название метода json(), результат не является JSON, а является результатом преобразования входного JSON в объект JavaScript.
Синтаксис
json()
Параметры
Нет.
Возвращаемое значение
A Promise, который разрешается в объект JavaScript. Этот объект может быть чем угодно, что может быть представлено в формате JSON — объектом, массивом, строкой, числом и т. д.
Исключения
-
DOMExceptionAbortError -
Запрос был отменён.
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 |
См. также
© 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