Created
August 13, 2020 19:03
-
-
Save Studiodews/90a576663328aa1ee6314339ad59ce18 to your computer and use it in GitHub Desktop.
Getting remote JSON data with the fetch API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<title>Working with remote data</title> | |
<meta charset="utf-8"/> | |
<!-- Polyfill in case your browser does not support the fetch API --> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/0.10.1/fetch.js"></script> | |
</head> | |
<body> | |
<button onclick="search();">Get remote list of users' names and emails using the fetch API</button> | |
<div id="users"></div> | |
</body> | |
</html> | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function search() { | |
var queryURL = "https://jsonplaceholder.typicode.com/users"; | |
fetch(queryURL) | |
.then(function (response) { | |
// response.json() returns a json string, | |
// returning it will convert it | |
// to a pure JavaScript | |
// object for the next then's callback | |
return response.json(); | |
}) | |
.then(function (users) { | |
// users is a JavaScript object here | |
displayUsersAsATable(users); | |
}) | |
.catch(function (error) { | |
console.log('Error during fetch: ' + error.message); | |
}); | |
} | |
function displayUsersAsATable(users) { | |
// users is a JavaScript object | |
// empty the div that contains the results | |
var usersDiv = document.querySelector("#users"); | |
usersDiv.innerHTML = ""; | |
// creates and populate the table with users | |
var table = document.createElement("table"); | |
// iterate on the array of users | |
users.forEach(function (currentUser) { | |
// creates a row | |
var row = table.insertRow(); | |
// insert cells in the row | |
var nameCell = row.insertCell(); | |
nameCell.innerHTML = currentUser.name; | |
var cityCell = row.insertCell(); | |
cityCell.innerHTML = currentUser.address.city; | |
}); | |
// adds the table to the div | |
usersDiv.appendChild(table); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
table { | |
margin-top: 20px; | |
} | |
table, tr, td { | |
border: 1px solid; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment