JSON
Jump to navigation
Jump to search
JSON File
var mainNav = [{ item: "Home", url: "../index.html" }, { item: "Product Videos", url: "../videos/index.php" }, { item: "Photo Gallery", url: "../photogallery.html" }, { item: "Installation Instructions", url: "../installation/index.html" }, { item: "Catalog Download", url: "../catalog/index.html" }, { item: "Tradeshows", url: "../tradeshow.html" } ];
Function That Creates the Navigation and Calls it
function showMainNav(arr) { var output = "<ul>"; var i; for (i = 0; i < arr.length; i++) { output += '<a href="' + arr[i].url + '">' + '<li>' + arr[i].item + '</li></a>'; } if (elements.mainNavigation !== null) { elements.mainNavigation.innerHTML = output + '</ul>'; } // end if } // end showMainNav showMainNav(mainNav);
Using For In Loop
The for in loop does not always display the array in the order typed HTML
<h2>My List</h2> <ul id="links"> </ul>
<script> var info = { "full_name": "Ray Villalobos", "title": "Staff Author", "links": { "blog": "http://iviewsource.com", "facebook": "http://facebook.com/iviewsource", "youtube": "http://www.youtube.com/planetoftheweb", "podcast": "http://feeds.feedburner.com/authoredcontent", "twitter": "http://twitter.com/planetoftheweb" } }; var output = ""; for (key in info.links) { // if the link has the key property if (info.links.hasOwnProperty(key)) { output += '<li>' + '<a href="' + info.links[key] + '">' + key + '</a>' + '</li>'; } } var update = document.getElementById('links'); update.innerHTML = output; </script>
Getting JSON Data stored on external sites
you need to wrap the json data in a function
dataHandler({ "full_name" : "Ray Villalobos", "title" : "Staff Author", "links" : [ { "blog" : "http://iviewsource.com" }, { "facebook" : "http://facebook.com/iviewsource" }, { "podcast" : "http://feeds.feedburner.com/authoredcontent" }, { "twitter" : "http://twitter.com/planetoftheweb" }, { "youtube" : "http://www.youtube.com/planetoftheweb" } ] });
Script file
function dataHandler(info) { var output=''; for (var i = 0; i <= info.links.length-1; i++) { for (key in info.links[i]) { if (info.links[i].hasOwnProperty(key)) { output += '<li>' + '<a href = "' + info.links[i][key] + '">' + key + '</a>'; '</li>'; } } } var update = document.getElementById('links'); update.innerHTML = output; }
HTML
Load the Json file after the script file
<script src="myscript.js"></script> <script src="http://iviewsource.com/exercises/json/data.json"></script>