2012-01-30 86 views
-1

我正在製作一個返回JSON的Ajax。我可以在Firebug中看到返回的JSON並使用JSLint對其進行驗證,但是我無法提取內容。繼承人我所看到的:
javascript未定義值

Data: {"shipments":[{"companyName":"GLOBAL SOL INC.", so on...........}]}

load: function(data){ 
    console.log("responseText " + data.responseText); 

**Above results in: responseText undefined** 

    var myVar = data.shipments; 

    console.log("myVar " + myVar); 

以上myVar的[Object對象]

+2

什麼叫'load',你有什麼期待'data'是,什麼是'data.shipments',*什麼是你的問題*? – Hamish 2012-01-30 19:36:12

+0

您好Hamish,加載是爲Ajax獲取請求,在application/json中返回的數據類型,我也發佈了數據片段。 – user1052591 2012-01-30 19:37:01

+0

這是使用jQuery嗎? – Jivings 2012-01-30 19:37:53

回答

1

在你的榜樣結果,myVar的是指包含對象的數組。要獲取公司名稱值,請使用data.shipments[0].companyNamemyVar[0].companyName

0

它看起來像響應工作正常。

嘗試console.log(data)console.log(myVar)。 如果您在沒有字符串的情況下調用控制檯,那麼它將顯示對象的內容(至少在Chrome中)。

然後,您將能夠告訴您需要請求的對象元素。這可能是JSON格式問題,但很難從您的問題中得知。

0

該響應是否包含"responseText"屬性?

{"shipments": [...], "responseText": ..., ...} 

如果沒有,那麼它是有道理的data.responseTextundefined,因爲它並沒有定義。

如果您要從XMLHttpRequest對象中尋找responseText對象,它可能會與load函數有所不同。哪個參數取決於調用函數的腳本(特定庫或家庭釀造?)。

至於"[Object object]",這是Object的默認toString結果。如果您想再次JSON表示,使用JSON.stringify(...)

console.log("myVar " + JSON.stringify(myVar)); 

,或者最瀏覽器控制檯提供瀏覽對象的能力。要使用此功能,只是將它作爲單獨的參數:

console.log("myVar", myVar);