当前位置: 首页 > 面试题库 >

在JSON对象上使用jQuery的find()

裴泰平
2023-03-14
问题内容

与brnwdrng的问题类似,我正在寻找一种搜索类似于JSON的对象的方法。假设我对象的结构是这样的:

TestObj = {
    "Categories": [{
        "Products": [{
            "id": "a01",
            "name": "Pine",
            "description": "Short description of pine."
        },
        {
            "id": "a02",
            "name": "Birch",
            "description": "Short description of birch."
        },
        {
            "id": "a03",
            "name": "Poplar",
            "description": "Short description of poplar."
        }],
        "id": "A",
        "title": "Cheap",
        "description": "Short description of category A."
    },
    {
        "Product": [{
            "id": "b01",
            "name": "Maple",
            "description": "Short description of maple."
        },
        {
            "id": "b02",
            "name": "Oak",
            "description": "Short description of oak."
        },
        {
            "id": "b03",
            "name": "Bamboo",
            "description": "Short description of bamboo."
        }],
        "id": "B",
        "title": "Moderate",
        "description": "Short description of category B."
    }]
};

我想获得一个id =“ A”的对象。

我已经尝试过各种方法,例如:

$(TestObj.find(":id='A'"))

但似乎没有任何效果。

任何人都可以想到一种无需使用“每个”即可根据某些条件检索项目的方法吗?


问题答案:

jQuery不适用于普通对象文字。您可以类似的方式使用以下函数来搜索所有“id”(或任何其他属性),而不管其在对象中的深度如何:

function getObjects(obj, key, val) {
    var objects = [];
    for (var i in obj) {
        if (!obj.hasOwnProperty(i)) continue;
        if (typeof obj[i] == 'object') {
            objects = objects.concat(getObjects(obj[i], key, val));
        } else if (i == key && obj[key] == val) {
            objects.push(obj);
        }
    }
    return objects;
}

像这样使用:

getObjects(TestObj, 'id', 'A'); // Returns an array of matching objects


 类似资料:
  • 问题内容: 我在Javascript中有两个JSON对象,除了数值相同。看起来像这样: 一个名为“数据”的对象具有当前值,另一个名为“旧”的对象具有1秒钟前的相同值。我想只输出值的 变化 来输出JSON对象,以便我可以计算网络接口上的数据吞吐量。 我不确定如何遍历JSON数据-它可能适用于任意数量的接口。 有人可以帮我吗?提前致谢 问题答案: 您可以遍历父对象和子对象的属性:

  • 我正在尝试向后端发送一个JSON对象。基本上,我要做的是获得两个文本字段的输入,然后是所有选定文本框的列表。我的javascript代码如下所示: 我还不是javascript方面的专家,但从我在其他Anwer和帖子中发现的情况来看,这是我可以组合起来的,我认为它实际上可以工作。后端部分工作正常,正如我用PostMan测试的那样,非常正常。这就是JSON,我;我是邮递员寄来的,看起来像: Java

  • 问题内容: 我正在尝试使用GET方法发送一个json对象。我的代码: 但是,收到的标头将“ Content-Length”设置为零,因此服务器上的json解析器无法读取内容。 我已经尝试设置内容长度标头,但是它仍然以零的形式出现在服务器上: 任何想法如何使它工作?它必须是GET请求。 问题答案: GET请求至少通常是没有消息正文。如文档中所述,jQuery将GET请求追加到url参数。您应该能够使

  • 本文向大家介绍jquery处理json对象,包括了jquery处理json对象的使用技巧和注意事项,需要的朋友参考一下 在服务器端的php脚本: jquery脚本: 返回到js后的处理: 第一种要用到varl转化的:是字符串的时候就要用eval转化成jquery对象(如下) 第二种:不需要转化的: 循环也有两种方法:

  • 问题内容: 我有一个返回带有单个属性的JSON对象的请求,该属性是一个数组。如何测试数组是否为空? 使用jQuery代码,例如: 我可以用什么代替if(data.RoleOwners == [])来测试RoleOwners是否为空数组? 谢谢,马特 问题答案:

  • 我有json格式,我想用JSONObject和JSONArray在java代码中创建它,但是我没有得到正确格式的输出。JSON格式如下所示。 我如何用java创建这个json对象,因为我想用这个对象创建使用NVD3的多条形图。如有任何帮助,不胜感激!