<\/script>')

Parse a JSON array using jQuery.each ()

I have this jQuery function

function getData(jsonLink){ $(".scrollable .items").html("<img class='loadGif' src='/sites/all/themes/zen/journeyon/images/ajax-loader.gif' alt='' />"); $.ajaxSetup({ url: jsonLink, global: false, type: "GET" }); $.ajax({ url: jsonLink, success: function(data) { var output = ""; $.each(data['nodes'], function(i,row){ var linkType = row['node-type']; var lowerLinkType = linkType.toLowerCase(); var videoLink = row["video"]; var thumbLink = row["thumbnail"]; var posterLink = row["poster-image"]; var nodeTitle = row["node-title"]; var url = row['url-link']; if(linkType == "Episode"){ output+='<li><a class="myRemote '+lowerLinkType+'" href="'+posterLink+'" ref="'+videoLink+'" title="Play '+nodeTitle+'"><img src="'+thumbLink+'" width="123" height="67" alt="Play '+nodeTitle+'" /></a></li>'; }else if(linkType == "Slide"){ output+='<li><a class="myRemote '+lowerLinkType+'" href="'+posterLink+'" ref="'+url+'" title="Go To '+nodeTitle+'"><img src="'+thumbLink+'" width="123" height="67" alt="Go To '+nodeTitle+'" /></a></li>'; } }); $(".scrollable .items").html("").append(output); remoteControl(); } }); } 

And I'm trying to parse this array

 { "nodes": [ { "node-title" : "Slide for Album Post", "node-type" : "Slide", "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Web_Graphic2.jpg", "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Web_Graphic2.jpg", "video" : "", "audio" : "", "url-link" : "http://dev.journeystl.info/current/blogs/josh-dix/latest-worship-ep-have-thine-own-way" }, { "node-title" : "Walking In The Light", "node-type" : "Episode", "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-09-27pf.jpg", "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-09-27pf.jpg", "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-09-27-Vodcast.m4v", "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-09-27-Podcast.mp3", "url-link" : "" }, { "node-title" : "Test Slide", "node-type" : "Slide", "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/iStock_000000041926Small.jpg", "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/iStock_000000041926Small.jpg", "video" : "", "audio" : "", "url-link" : "/node/3960" }, { "node-title" : "Finding God at Church", "node-type" : "Episode", "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-09-06pf_0.jpg", "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-09-06pf_0.jpg", "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-09-05-Vodcast.m4v", "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-09-06-Podcast.mp3", "url-link" : "" }, { "node-title" : "Finding God in Brokenness", "node-type" : "Episode", "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-08-30pf_0.jpg", "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-08-30pf_0.jpg", "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-08-30-Vodcast.m4v", "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-08-30-Podcast.mp3", "url-link" : "" }, { "node-title" : "False Teachers", "node-type" : "Episode", "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-07-26pf.jpg", "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-07-26pf.jpg", "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-07-25-Vodcast.m4v", "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-07-25_Podcast.mp3", "url-link" : "" }, { "node-title" : "Confessions: A Story of Struggle, Restoration, and Hope", "node-type" : "Episode", "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/PosterFrame_Confessions.jpg", "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/PosterFrame_Confessions.jpg", "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-06-28-Vodcast.m4v", "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-06-28-Podcast.mp3", "url-link" : "" } ] } 

The problem is that I get the error message directly in the jQuery.js file.

 G is undefined http://journeyon.local/sites/all/themes/zen/journeyon/js/jquery-1.3.2.min.js?4 Line 12 

Does anyone know what is going on? if I warn before the .each () expression, it warns that this is normal, but if I warn inside the .each () operator, I get nothing and variables are never created.

Thanks!

+4
source share
4 answers

You do this with difficulty using $.ajax() . It is easier to use $.getJSON() .

+3
source
 $.ajax({ url: jsonLink, dataType: 'json', success: function(data) { $.each(data.items, function(i,item){ // your code .. }); } }); 
+6
source

For PHP array json encoded

 <?php $arr= array('1'=>'2', 2=>'3',4000=>'400','x'=>'alfa'); ?> <input type="hidden" value="<?php echo json_econde($arr); ?>" id="phpjsonencoded"> 

you can use

 var x = "[" + $('#phpjsonencoded').val() + "]"; var obj = $.parseJSON(x); $.each(obj[0],function(key,val){ console.log(val); }); 
+1
source

Just use row.node-type , row.video etc. instead of using row['node-type'] , row["video"] , etc.

Hope this helps.

0
source

All Articles