JSON
Jump to navigation
Jump to search
JSON with handlebars
HTML file
<script id="content" type="text/x-handlebars-template"> {{#each products.items}} <div class="itemBox"> <h2>{{this.heading}}</h2> <div class="picture">{{{this.image}}}</div> <div class="x"> <ul> {{#listing}} <li> {{this}} </li> {{/listing}} </ul> <button>{{{this.download}}}</button> </div> </div> {{/each}} </script> <div class="mydiv">
JavaScript File
<script type="text/javascript"> $(function() { $.getJSON('products.json', function(info) { var source = $('#content').html(); var template = Handlebars.compile(source); var compiledHtml = template(info); $('.mydiv').replaceWith(compiledHtml); console.log(info); }); }); </script>
JSON File
{ "products": { "items": [{ "heading": "EXTRUDED PROFILES AND SHAPES", "image": "<img src='master/smimages/a-extruded_profiles.jpg' alt='none' />", "download": "<a href='master/A-Section.pdf' target='_blank'> <button>Download Section</button></a>", "listing": [ "Angle Mouldings", "Baseboard Mouldings", "Bumper Mouldings", "Cap and Divider Mouldings", "Carpet Mouldings", "Decorative Trim Mouldings", "Door Track Mouldings", "Edgebanding", "U-Channel Mouldings" ] }, { "heading": "EXTRUDED PROFILES AND SHAPES", "image": "<img src='master/smimages/a-extruded_profiles.jpg' alt='none' />", "download": "<a href='master/A-Section.pdf' target='_blank'> <button>Download Section</button></a>", "listing": [ "Angle Mouldings", "Baseboard Mouldings", "Bumper Mouldings", "Cap and Divider Mouldings", "Carpet Mouldings", "Decorative Trim Mouldings", "Door Track Mouldings", "Edgebanding", "U-Channel Mouldings" ] } ] } }
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>