Response.json()
The json()
method of the Response
interface takes
a Response
stream and reads it to completion. It returns a promise which
resolves with the result of parsing the body text as JSON
.
Note that despite the method being named json()
, the result is not JSON but is instead the result of taking JSON as input and parsing it to produce a JavaScript object.
Syntax
response.json().then(data => {
// do something with your data
});
Parameters
None.
Return value
A Promise
that resolves to a JavaScript object. This object could be
anything that can be represented by JSON — an object, an array, a string, a number...
Example
In our fetch
json example (run fetch
json live), we create a new request using the Request()
constructor, then use it to fetch a .json
file. When the
fetch is successful, we read and parse the data using json()
, then read
values out of the resulting objects as you'd expect and insert them into list items to
display our product data.
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) {
let 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);
Specifications
Specification |
---|
Fetch Standard # ref-for-dom-body-json① |
Browser compatibility
BCD tables only load in the browser