循环遍历嵌套的json对象

时间:2014-03-12 00:10:15

标签: javascript

我的json对象是

"lastModifyingUser": {
"kind": "drive#user",
"displayName": string,
"picture": {
  "url": string
},
"isAuthenticatedUser": boolean,
"permissionId": string

}

我想循环遍历lastModifyingUser并仅从图片对象中提取url值。

这可能吗?

这是我到目前为止所拥有的。

var obj = resp.lastModifyingUser;


                for(var k in obj){
                    var value = obj[k];
                    console.log(value);
                }   

输出:

drive#user 
#Hidden Name
Object {url: "#Hidden URL"}  <-- I want only the "hidden" URL
false 
#Hidden Id

2 个答案:

答案 0 :(得分:1)

这样的东西
for(var k in obj)
{
    var value = obj[k].url || obj[k];
    console.log(value);
}

会做你想做的事,但请记住,这是一个快速而肮脏的解决方案。您可能希望进行某种基本类型检查和hasOwnProperty检查,以确保您不会意外地抛出错误或引入原型字段(如果这是直接来自API的json,则不太可能,但这样做仍然是个好主意。)

答案 1 :(得分:1)

递归函数会更优雅,但以下应该有效:

for(var k in obj) {
    var value = obj[k];
    if (typeof value === 'object') {
        for (var k2 in value) {
            var value2 = value[k2];
            console.log(value2);
        }
    } else {
        console.log(value);
    }
}