Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-通过JSON数组进行搜索_Jquery_Html_Json - Fatal编程技术网

jQuery-通过JSON数组进行搜索

jQuery-通过JSON数组进行搜索,jquery,html,json,Jquery,Html,Json,我需要搜索JSON数据,找到包含“种类”“播放列表”的每个对象,然后遍历曲目并提取信息,这些信息将被放入hmtl列表中。问题在于,在某些情况下(取决于URL的类型),json信息只是一个单一的对象,而不是包含所有对象的多维数组 下面是两种url类型 这是一个仅包含一级信息的播放列表。 这是一个仅包含多个播放列表作为对象的阵列。 我目前的代码是: $.getJSON('http://api.soundcloud.com/users/dubstep/playlists.json?client_i

我需要搜索JSON数据,找到包含“种类”“播放列表”的每个对象,然后遍历曲目并提取信息,这些信息将被放入hmtl列表中。问题在于,在某些情况下(取决于URL的类型),json信息只是一个单一的对象,而不是包含所有对象的多维数组

下面是两种url类型

这是一个仅包含一级信息的播放列表。

这是一个仅包含多个播放列表作为对象的阵列。

我目前的代码是:

$.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);
    }
};