jQuery-通过JSON数组进行搜索
我需要搜索JSON数据,找到包含“种类”“播放列表”的每个对象,然后遍历曲目并提取信息,这些信息将被放入hmtl列表中。问题在于,在某些情况下(取决于URL的类型),json信息只是一个单一的对象,而不是包含所有对象的多维数组 下面是两种url类型 这是一个仅包含一级信息的播放列表。 这是一个仅包含多个播放列表作为对象的阵列。 我目前的代码是:jQuery-通过JSON数组进行搜索,jquery,html,json,Jquery,Html,Json,我需要搜索JSON数据,找到包含“种类”“播放列表”的每个对象,然后遍历曲目并提取信息,这些信息将被放入hmtl列表中。问题在于,在某些情况下(取决于URL的类型),json信息只是一个单一的对象,而不是包含所有对象的多维数组 下面是两种url类型 这是一个仅包含一级信息的播放列表。 这是一个仅包含多个播放列表作为对象的阵列。 我目前的代码是: $.getJSON('http://api.soundcloud.com/users/dubstep/playlists.json?client_i
$.getJSON('http://api.soundcloud.com/users/dubstep/playlists.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd', { get_param: 'value' }, function(url_data) {
$.each(url_data, function (i, elem) {
if (elem.kind === 'playlist') {
$.each(elem.tracks, function (i, elem) {
console.log(elem.title);
});
}
});
}))
只有在处理有多个播放列表的“用户”URL时,它才起作用
总而言之,我的问题是,我需要一种方法来搜索数组的所有级别,以找到种类===播放列表的级别。您尝试过吗?我使用了它,它又小又快,特别是在搜索json树时(我会使用它进行搜索和编写)。试试下面的代码:
var objJson = jQuery.parseJSON(json);
jQuery.each(objJson , function(i, val) {
alert(val);
});
这应该符合你的要求
$.each(json, function (i, elem) {
if (elem.kind === 'playlist') {
$.each(elem.tracks, function (i, elem) {
console.log(elem.title);
});
}
});
更新:
这将适用于任一URL。此外,这里还有一个更高级的客户端输出:
我不希望这段代码依赖于jquery之外的任何插件或需求,因为我希望将它作为一个独立的插件使用;如果您需要查找json,我认为值得查看这些库,但当然,对于单个案例来说,这可能是一种过分的做法。当我有多个播放列表时,这非常有效,非常有效!但是,如果我使用它将无法工作,因为“TypeError:‘null’不是对象(计算‘elem.kind’)”哇,这超出了调用的范围!这太完美了。干杯
var parse = function (json) {
$.each(json, function (i, elem) {
if (elem.kind === 'playlist') {
$.each(elem.tracks, function (i, elem) {
console.log(elem.title);
});
}
});
},
parseReturnedData = function (json) {
var isObject = (typeof json === 'object' && json instanceof Object),
isArray = (typeof json === 'object' && json instanceof Array),
newArray = [];
if (isArray) {
parse(json);
} else if (isObject) {
newArray.push(json);
parse(newArray);
}
};