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);