2010-10-06 216 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);应该工作。