The json()
method of the Body
mixin takes a Response
stream and reads it to completion. It returns a promise that resolves with the result of parsing the body text as JSON
.
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 | Status | Comment |
---|---|---|
Fetch The definition of 'Body.json()' in that specification. |
Living Standard | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
json | Chrome
Full support
42
| Edge Full support ≤18 | Firefox
Full support
39
| IE No support No | Opera
Full support
29
| Safari Full support 10 | WebView Android No support No | Chrome Android Full support 42 | Firefox Android No support No | Opera Android
Full support
29
| Safari iOS Full support 10 | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- User must explicitly enable this feature.
- User must explicitly enable this feature.