LoadFromJSON Example -- Source Code
HTML Page -- index.htm
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type">
<title>LoadFromJSON Example</title>
<link rel="stylesheet" href="styles.css">
<script src="script.js"></script>
</head>
<body>
<h1>LoadFromJSON Example</h1>
<input type="file" id="in1"><br><br>
<button id="btn1">Show Riddles</button>
</body>
</html>
CSS Sheet -- styles.css
/* Styles for LoadFromJSON Example */
body { background-color: #E0E0FF;
color: #000080;
font-family: Tahoma, Verdana, sans-serif; }
h1 { color: #800000; }
li { margin-bottom: 10px; }
JavaScript Script -- script.js
// LoadFromJSON Example
// Source code file: script.js
var contents;
function loadRiddles(event) {
// Obtain the single uploaded file.
var f = event.target.files[0];
if (f) {
var r = new FileReader( );
r.onload = function(e) {
contents = e.target.result;
}
r.readAsText(f);
}
else {
alert("Failed to load file");
}
}
function displayRiddles( ) {
// Convert JSON data to array of objects.
var riddlesArray = JSON.parse(contents);
// Display riddles dynamically.
var orderedList = document.createElement("ol");
for(let r of riddlesArray) {
var listItem = document.createElement("li");
listItem.innerHTML =
r.riddle + "<br>" + r.answer;
orderedList.appendChild(listItem);
}
var body = document.querySelector("body");
body.appendChild(orderedList);
}
// Attach event handlers.
function init( ) {
// Upload file synchronously.
document.getElementById("in1").
addEventListener("change",
loadRiddles, false);
// Attach event handler to button
document.getElementById("btn1").
addEventListener("click", displayRiddles);
}
window.addEventListener("load", init);