我有以下 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/