2012-04-29 149 views
-1

这是正在返回的对象。如何访问javascript中对象的内部对象

Object: 
    contributors_enabled: false 
    created_at: "Sat Apr 18 02:20:51 +0000 2009" 
    ... 
    status: Object 
    ... 
    verified: false 

正如你可以看到有2个对象。父母,然后是内部称为“状态”的对象。

在javascript中,如何访问“状态”对象。我试过object.status,它返回null。

真正的代码:

function get_data($id) { 
    global $tmhOAuth; 
    $code = $tmhOAuth->request('POST', $tmhOAuth->url('1/users/lookup.json', ''), array('user_id' => $id)); 
    if ($code == 200) { 
     $data = json_decode($tmhOAuth->response['response'], true); 
     return $data; 
    } else { 
     outputError($tmhOAuth); 
    } 
} 

if (!empty($_POST) && !is_null($_POST)) { 
    extract($_POST); //imports $id; 
    $data = get_data($id); 
    exit(json_encode($data)); 
} 


$.post( 
    '/twitauth/app.php', 
    data, 
    function(response) { 
     console.log(response); 
    }, 
    'json' 
); 
+4

我们能有一个[的jsfiddle(http://jsfiddle.net/),好吗? – Ryan

+0

我猜这只是伪代码,因为它看起来不像一个有效的JS对象? – adeneo

+0

这是CoffeeScripts中的一个吗?或伪代码? – Joseph

回答

5

您需要张贴实际的代码,因为这两种应该工作:

object.status 
object["status"] 

如果这些不工作,那么你所定义的对象不正确,或者对象内部的对象是私有的。

+0

*你的意思是'object [“status”]'?* – Joseph

+0

我还建议通过hasOwnProperty检查属性是否存在,以及是否通过“== undefined”定义。 – achinda99

+0

Ayup,约瑟夫。在尝试使用它之前,@ achinda99总是一个好主意,看看对象是否存在,这是肯定的。 :-) –

1

您可以使用.运算符引用n层对象,没问题。

下面是一个example

var myobj = { 
    'a' : 1, 
    'b' : 2 
}; 

var foobar = { 
    'foo' : 'bar', 
    'status' : myobj  
    }; 

console.log(foobar.status.a); 
相关问题