javascript - 使用 JQuery 搜索 JSON 对象

标签 javascript jquery json

我有以下 JSON 对象。使用 JQuery 我需要找到以下值:

summary.nameValues.ID 和 detail.TypedNameValues.size

有人可以展示如何使用 JQuery 实现这一点吗?

[
{
    "path": "\\Users\\john.smith\\test",
    "summary": {
        "NameValues": [
            {
                "Name": "Id",
                "Values": [
                    "232639"
                ]
            },
            {
                "Name": "City",
                "Values": [
                    "London"
                ]
            }
        ]
    },
    "detail": {
        "String": "some data",
        "Result": 0,
        "TypedNameValues": [
            {
                "Name": "name1",
                "Type": "string",
                "Value": "data here!!"
            },
            {
                "Name": "size",
                "Type": "long",
                "Value": "434353"
            }
        ]
    }
 }
]

最佳答案

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

这个答案来自另一个线程。您可以在这里找到更多帮助:use jQuery's find() on JSON object

关于javascript - 使用 JQuery 搜索 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032440/

相关文章:

javascript - 如何根据值的小数点更改 .toFixed()?

javascript - focusout jquery 不起作用

java - 将数据从 arraylist 插入表

jquery - 让Grails读取我提交的JSON PUT AJAX请求?

javascript - 将数据从 JSON 动态放入 HTML,同时排除键

asp.net - 使用 LiveValidation 仅在单击一个按钮时才会触发验证?

javascript - 如何从Python中的字典数组中获取JavaScript中的对象数组?

javascript - 如何根据计数为对象设置显示 block

javascript - 如何让coffeescript编译器忽略源文件的一部分?

jquery - Angular UI Bootstrap $scope.$modalInstance.close 导致 : Cannot read property 'value' of undefined