2012-04-29 109 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); 
相關問題