array Parse JSON con jQuery .Cada ()
Pregunta
Tengo esta función jQuery
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();
}
});
}
Y yo estoy tratando de analizar fuera de esta matriz
{
"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" : ""
}
]
}
El problema es que estoy recibiendo un error en los jquery.js propio archivo.
G is undefined
http://journeyon.local/sites/all/themes/zen/journeyon/js/jquery-1.3.2.min.js?4
Line 12
Alguien tiene alguna idea de lo que está pasando? si alerta antes de la declaración each () que alerta muy bien, pero si alerto dentro de la instrucción each () no consigo nada y las variables no se construyen.
Gracias!
Solución
Lo estás haciendo de la manera difícil mediante el uso de $.ajax()
. Es más fácil de usar $.getJSON()
lugar.
Otros consejos
$.ajax({
url: jsonLink,
dataType: 'json',
success: function(data) {
$.each(data.items, function(i,item){
// your code ..
});
}
});
Para una json matriz PHP codificado
<?php $arr= array('1'=>'2', 2=>'3',4000=>'400','x'=>'alfa'); ?>
<input type="hidden" value="<?php echo json_econde($arr); ?>" id="phpjsonencoded">
puede utilizar
var x = "[" + $('#phpjsonencoded').val() + "]";
var obj = $.parseJSON(x);
$.each(obj[0],function(key,val){
console.log(val);
});
Sólo tiene que utilizar row.node-type
, row.video
etc en lugar de utilizar row['node-type']
, row["video"]
etc.
Esperamos que esto ayude.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow