【发布时间】:2014-07-22 19:01:42
【问题描述】:
循环遍历仅以特定模式开头的 JSON 对象的正确/惯用方式是什么?
示例:假设我有一个类似 JSON 的
{
"END": true,
"Lines": "End Reached",
"term0": {
"PrincipalTranslations": {
// nested data here
}
},
"term1": {
"PrincipalTranslations": {
// more nested data here
}
}
}
我只想访问PrincipalTranslations 对象,我尝试过:
$.each(translations, function(term, value) {
$.each(term, function(pos, value) {
console.log(pos);
});
});
这不起作用,可能是因为我无法遍历 END 和 Lines 对象。
我尝试过类似的东西
$.each(translations, function(term, value) {
$.each(TERM-THAT-STARTS-WITH-PATTERN, function(pos, value) {
console.log(pos);
});
});
使用wildcards,但没有成功。我可以尝试弄乱if 语句,但我怀疑我错过了一个更好的解决方案。谢谢。
【问题讨论】:
-
你不能在那里使用通配符,$.each 只是循环一个数组或一个对象的键。您必须使用其他东西(例如 if 语句)进行过滤。
-
如果可能,更改 JSON 结构会容易得多。您能否更改格式以包含
terms数组,而不是每个都有自己的属性? -
仅供参考,
value将是要迭代的对象,term是属性名称。查看文档:api.jquery.com/jquery.each -
由于 API 请求,我得到了 JSON,所以是的,我可以在后端重新安排整个事情。由于我是网络开发新手,我只是假设 API 是正确的,但问题出在我身上:]
标签: javascript jquery json jquery-selectors