将字符串转换为json数组
问题描述:
我从Ajax请求获取此响应。 Javascript似乎认为它是一个字符串。 (当我说alert this.responseText时,整个字符串显示)将字符串转换为json数组
我该如何将它转换为JavaScript对象(JSON)?
{"response": {
"success": "The activity has been removed",
"message": "0"
}
}
我没有使用jquery。
答
这不是世界上最安全的,但你可以这样做:
var value = null, txt = this.responseText;
eval("value = (" + txt + ")");
这可能是一个小更安全的事:
var value = null, txt = this.responseText;
!function(window) { eval("value = (" + txt + ")"); }();
但也有潜在的还有各种黑客。你最好使用一个库。
答
如果你使用jQuery,JSON.parse(this.responseString);
或jQuery.parseJSON(this.responseString);
应该工作。
使用原型或原生JavaScript? – Detect 2010-10-06 17:09:23
原因可能是“http状态”代码。检查http状态代码(通过IE中的F12或FF中的Firebug)以查看它是否为200(= OK)。 – Tohid 2012-09-07 13:35:21
检出http://stackoverflow.com/questions/45015/safely-turning-a-json-string-into-an-object – Detect 2010-10-06 17:07:33