2010-10-06 330 views
3

我從Ajax請求獲取此響應。 Javascript似乎認爲它是一個字符串。 (當我說alert this.responseText時,整個字符串顯示)將字符串轉換爲json數組

我該如何將它轉換爲JavaScript對象(JSON)?

{"response": { 
    "success": "The activity has been removed", 
    "message": "0" 

    } 
} 

我沒有使用jquery。

+0

使用原型或原生JavaScript? – Detect 2010-10-06 17:09:23

+0

原因可能是「http狀態」代碼。檢查http狀態代碼(通過IE中的F12或FF中的Firebug)以查看它是否爲200(= OK)。 – Tohid 2012-09-07 13:35:21

+0

檢出http://stackoverflow.com/questions/45015/safely-turning-a-json-string-into-an-object – Detect 2010-10-06 17:07:33

回答

2

這不是世界上最安全的,但你可以這樣做:

var value = null, txt = this.responseText; 
eval("value = (" + txt + ")"); 

這可能是一個小更安全的事:

var value = null, txt = this.responseText; 
!function(window) { eval("value = (" + txt + ")"); }(); 

但也有潛在的還有各種黑客。你最好使用一個庫。

+0

目標用戶是黑莓設備。大多數圖書館都不適合老年人的BB(好或完全)。我正在嘗試XUI,但還沒有弄清楚它的JSON功能。 – robert 2010-10-06 17:52:17

+0

此答案也適用於我:http://stackoverflow.com/a/9904328/538387 – Tohid 2012-09-07 13:46:03

15

如果你使用jQuery,JSON.parse(this.responseString);jQuery.parseJSON(this.responseString);應該工作。