Difference between revisions of "JSON"
Jump to navigation
Jump to search
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==JSON | == JSON with handlebars == | ||
''' | ''' HTML file ''' | ||
<pre> | <pre> | ||
<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"> | |||
</pre> | |||
''' JavaScript File ''' | |||
<pre> | |||
<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> | |||
</pre> | </pre> | ||
''' | '''JSON File ''' | ||
<pre> | <pre> | ||
{ | |||
"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" | |||
] | |||
} | |||
] | |||
} | |||
} | |||
</pre> | </pre> | ||
=== Getting JSON Data stored on external sites === | |||
'''you need to wrap the json data in a function ''' | |||
<pre> | |||
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" } | |||
] | |||
}); | |||
</pre> | |||
=== Script file === | |||
<pre> | |||
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; | |||
} | |||
</pre> | |||
=== HTML === | |||
'''Load the Json file after the script file''' | |||
<pre> | |||
<script src="myscript.js"></script> | |||
<script src="http://iviewsource.com/exercises/json/data.json"></script> | |||
</pre> | |||
==[[#top|Back To Top]]-[[Main_Page| Home]] - [[Java Script|Category]]== | ==[[#top|Back To Top]]-[[Main_Page| Home]] - [[Java Script|Category]]== |
Latest revision as of 18:12, 11 April 2017
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>