jQuery - 通过 JSON 数组搜索

2024-01-03

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

下面是两种 url 类型。

这是一个仅包含一层信息的播放列表。http://api.soundcloud.com/playlists/1980151.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd http://api.soundcloud.com/playlists/1980151.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd

这是一个仅包含多个播放列表作为对象的数组。http://api.soundcloud.com/users/dubstep/playlists.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd http://api.soundcloud.com/users/dubstep/playlists.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd

我当前的代码是这样的:

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

});

It only在处理有多个播放列表的“用户”url 时有效。

总结一下我的问题是什么,我需要一种方法来搜索数组的所有级别,以查找具有 kind === 播放列表的级别。


这应该可以满足您的要求。

$.each(json, function (i, elem) {
    if (elem.kind === 'playlist') {
        $.each(elem.tracks, function (i, elem) {
            console.log(elem.title);
        });
    }
});

UPDATE:

这适用于任一 URL。另外,这里有一个更高级的客户端输出的小提琴:http://jsfiddle.net/jTLvE/ http://jsfiddle.net/jTLvE/

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);
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery - 通过 JSON 数组搜索 的相关文章

随机推荐

  • 扩展模型未加载

    我们有一个 Magento 开发站点和一个生产站点 这两个网站都安装了名为 Affiliate Pro 的扩展 我需要从我的脚本访问模型 所以我写了一个测试脚本 它适用于我们的开发站点 但不适用于生产站点 开发站点输出 object MW
  • 我可以更改 gdb 中 RET 的绑定吗?

    我想禁用 gdb 行为 即输入回车符会重复执行最后输入的命令 我只是想让它什么也不做 这可能吗 似乎重复大多数命令是 gdb 的默认行为 并且没有设置可以更改它 这是 gdb 源代码中的样子 Handle a complete line o
  • Libreoffice Draw Export解析没有意义

    我正在尝试使用 Libreoffice Draw v 4 0 2 2 制作一个非常简单的标签 该标签只不过是规则间隔的居中文本行而已 该图像将被打印 并且我有固定的尺寸 ppi 要求以确保适当的打印质量 我根据自己的规格设置页面大小 并根据
  • ES6 默认导出和命名导出

    我试图理解命名和默认导出 我有一个看似基本的要求 但我不明白如何设置 我希望能够导入两者 app js import Mod from my module import funcA funcB from my module console
  • DRF 序列化器深度使创建时忽略字段

    github上有这个问题的项目 https github com sam moshenko drf depth problem 由于某种原因 序列化器的深度选项会使字段在创建时被忽略 序列化器 class AnswerSerializer
  • 如何阻止 maven-shade-plugin 阻止 java.util.ServiceLoader 初始化 opensaml-impl 类型

    使用 OpenSAML 3 时 您必须首先从opensaml saml impl具有以下代码行的工件 InitializationService initialize This uses java util ServiceLoader加载任
  • Git 将现有存储库推送到新的不同的远程存储库服务器?

    假设我有一个存储库git fedorahosted org http git fedorahosted org git p rhq rhq git a summary我想将其克隆到我在 github 的帐户中 以便除了 fedorahost
  • Power BI 中的排序堆栈条形图

    我使用堆积条形图来展示各个地区的性别比例 这里的图例是性别 轴是区域 值是人数 当我想根据女性性别值对图表进行排序时 仅根据人数值进行排序 我如何按百分比值对其进行排序 请帮我 编辑 我的第一个答案只关注计数 现在我已经考虑到OP想要按女性
  • 使用 django runserver 开发服务器时如何提供静态文件?

    我正在使用 django 1 5 我能够在生产中提供这些文件 因为它是在 apache 级别处理的 这是我的 httpd conf 文件
  • Android:从 Intent 获取应用程序名称

    我目前正在研究多图像选择器控件 我正在用这个允许用户选择图像的相机或图库 https stackoverflow com questions 4455558 allow user to select camera or gallery fo
  • 在android中创建持久搜索栏

    我想要一个位于布局顶部的搜索框 如下所示 http www google com design spec patterns search html search in app search http www google com desig
  • Laravel 5:覆盖注册页面的默认视图

    我想更改身份验证过程以使用另一个视图模板 例如 代替resources views auth register blade php应使用它resources views register blade php 但我很难找到调用该视图的代码 我
  • 如何获取 Ballerina 数组中对象的索引?

    如何有效地获取 Ballerina 数组中对象的索引 有没有内置函数可以做到这一点 芭蕾舞演员现在提供indexOf https github com ballerina platform ballerina lang blob 56c94
  • 在 Swift 中,我可以使用 for-in 枚举来初始化或重置数组吗?

    我目前在 Swift 类中有一个 Bool 类型的数组 声明如下 public var cardIsTaken Bool 为了跟上 Swift 风格指南 要求尽可能避免索引 for 循环 我有这样的东西 for takenFlag in c
  • 什么是可重入解析器?

    谁可以给我解释一下这个 特别是以下之间的区别 http github com whymirror greg http github com whymirror greg and http piumarta com software peg
  • Firebase 托管和 seo 上的 Angular5 通用延迟加载

    有谁知道如何在 firebase 托管上进行延迟加载工作 这一切都有效 但是当我查看站点的源代码时 我只看到路由器插座 而不看到文本等 我已将以下代码添加到函数文件夹内的 index js 中 extraProviders provideM
  • Rcpp 无法在初始化中将“SEXP {aka SEXPREC*}”转换为“double”

    我正在尝试复制 Rcpp 中的 R 向量化和 我首先尝试以下无故障代码 include
  • 制作长度不断增加的星号和零的图案

    我正在尝试像下面的图案一样回显星星和零 0 00 000 星号的长度以增加的因子 以膨胀的方式 增长 先前的星号数量加上当前的迭代数量 迭代 1 1 0 1 迭代 2 3 1 2 迭代 3 6 3 3 迭代 4 10 6 4 迭代 5 15
  • 如何进行网络跟踪或调试WebRTC点对点连接

    我想知道有什么工具或任何方法可以让我看到底层的 WebRTC 对等连接是什么 举个简单的例子 如果我使用 webrtc 实现视频聊天 所有连接 offer answer ice 都已建立 但我看不到视频流 我如何调试并查看这些连接之间是否有
  • jQuery - 通过 JSON 数组搜索

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