如何将JSONString转换为Javascript对象

如何将JSONString转换为Javascript对象,javascript,json,object,Javascript,Json,Object,我需要一些关于JavaScript的帮助。我在单击按钮时执行ajax调用,返回下面的字符串,这是使用GSON生成的(基本上是一个JSON对象) 当我在javascript中获得这些数据时。 我试图使用下面的语句将对象转换为JSON var jsonObj = eval(xmlHttp.responseText); xmlHttp.responseText具有以下字符串 {"chart":{"renderTo":"container","type":"bar"},"title":{"text":

我需要一些关于JavaScript的帮助。我在单击按钮时执行ajax调用,返回下面的字符串,这是使用GSON生成的(基本上是一个JSON对象)

当我在javascript中获得这些数据时。 我试图使用下面的语句将对象转换为JSON

var jsonObj = eval(xmlHttp.responseText);
xmlHttp.responseText
具有以下字符串

{"chart":{"renderTo":"container","type":"bar"},"title":{"text":"Engagement Per Vendor Per GBP"},"subtitle":{"text":"ASPT"},"xAxis":{"categories":["A","B","C","D"],"title":{"text":"Engagement Per Vendor Per GBP"}},"yAxis":{"min":0,"title":{"text":"Count","align":"high"}},"plotOptions":{"bar":{"dataLabels":{"enabled":true}}},"legend":{"layout":"vertical","align":"right","verticalAlign":"bottom","x":-100,"y":100,"floating":true,"borderWidth":1,"backgroundColor":"#FFFFFF","shadow":true},"credits":{"enabled":true},"series":[{"name":"ABC","data":[10,20,20,30]},{"name":"DEF","data":[10,20,30,40]},{"name":"GHIJ","data":[20,30,40,10]},{"name":"KLMN","data":[10,40,20,30]}]}
当我尝试运行jsp时,它在
var jsonObj=eval(xmlHttp.responseText)处停止

我以前做过很多次,但这次数据不同。JSON字符串是由GSON api中的JSON方法创建的

除非我将其放入JSON对象,否则我将无法对其执行任何操作。任何关于这方面的帮助都会得到通知

问候,,
Senny

这是一种有效的JSON格式,因此尽可能使用
JSON.parse(xmlHttp.responseText)
(IE8+、Firefox、Chrome、Opera、Safari…)并使用
eval('('+xmlHttp.responseText+'))
对于IE6-7,请注意在使用
eval
时应额外添加一对括号()):

if (JSON) return JSON.parse(xmlHttp.responseText);
else return eval('(' + xmlHttp.responseText + ')');
jQuery可以做到这一点:

如果您不想使用
eval
,这里有一个独立的解析器:


更新只需使用内置的

+1来建议JSON.parse(我希望我可以同时使用-1,而不使用+0,因为我不建议在旧浏览器上使用库来修补/填充JSON.parse)JSON解析器将只识别JSON文本,拒绝所有脚本。在提供本机JSON支持的浏览器中,JSON解析器也比eval快得多。
if (JSON) return JSON.parse(xmlHttp.responseText);
else return eval('(' + xmlHttp.responseText + ')');