2011-08-24 62 views
1

我有在PHP,查詢代碼的簡單一點,抓起結果數組,並呼應,所以我可以把它撿起來在javascript:無法使用返回的JSON

echo json_encode($emailQuery->result); 

(中 - >結果部分是表達式引擎;它返回結果集的數組)

我的JavaScript來接收所述代碼如下:

$.post("/dev/onboardingEmailsSubmit", loadInfo, function(data) { 
    console.log(data); 
}); 

當我輸出數據時,它輸出作爲我期望整個字符串即, {[varname:「value」等]}。但數據['varName'],它是未定義的。 data.varName也是未定義的。 data [0]是JSON字符串的第一個字符,導致我相信javascript根本不會將它用作對象。數據[1]是第二個字符等。

有沒有人知道這裏發生了什麼?我需要處理一系列數據。

+2

如果你的php腳本輸出'header('Content-type:application/json');',jquery應該自動選擇併爲你決定。否則,它可能會以text/html或text/plain的形式出現。 –

+0

謝謝@Marc B,我必須嘗試一下。 – Paragon

回答

6

聽起來像你還沒有解析過JSON。瀏覽器或jQuery應該如何知道你得到的響應是JSON? (另請參閱@ Marc的評論)

您可以將'json'作爲第四個參數傳遞給$.post[docs]以讓jQuery爲您解析響應。

+0

您也可以使用'$ .parseJSON(response)'按照http://api.jquery.com/jQuery.parseJSON/ –

+0

我猜我認爲JavaScript應該讀取文本並採取相應的行動。謝謝。但是,我嘗試調用數據[0]可以正常工作,但數據[0] .varName完全不起作用。我看了一些指南,他們都告訴我使用data [0] .body(在我的情況下)。我也試過數據[0] ['body']。 – Paragon

+1

@Paragon:儘管JSON語法與JavaScript的對象字面量語法類似,但JSON對JavaScript沒有特殊的含義。它是一種數據格式,與其他任何數據格式一樣XML。 *編輯:*您只能訪問存在的屬性,但您沒有發佈結構示例,所以我無法在此幫助您。 –

0
$.post("/dev/onboardingEmailsSubmit", loadInfo, function(data) { 
    console.log(data); 
}, 'json'); 

jQuery將解析JSON,如果傳遞'json'爲第4參數去$.post