循环遍历仅以特定模式开头的JSON对象

循环通过仅以特定模式开始的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); }); }); 

哪个不起作用,可能是因为我无法遍历ENDLines对象。

我试着用类似的东西

 $.each(translations, function(term, value) { $.each(TERM-THAT-STARTS-WITH-PATTERN, function(pos, value) { console.log(pos); }); }); 

使用通配符 ,但没有成功。 我可以尝试搞乱if语句,但我怀疑有一个更好的解决方案,我错过了。 谢谢。

如果你只对PrincipalTranslations objects感兴趣,那么下面就可以了:

 $.each(translations, function(term, value) { if (value.PrincipalTranslations !== undefined) { console.log(value.PrincipalTranslations); } }); 

的jsfiddle

我如何在对象中搜索属性,如下所示:

 var obj1 ={ /* your posted object*/}; // navigates through all properties var x = Object.keys(obj1).reduce(function(arr,prop){ // filter only those that are objects and has a property named "PrincipalTranslations" if(typeof obj1[prop]==="object" && Object.keys(obj1[prop]) .filter( function (p) { return p === "PrincipalTranslations";})) { arr.push(obj1[prop]); } return arr; },[]); console.log(x);