我的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
答案 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);
}
}