将字符串转换为JSON对象

如何将字符串转换为对象? 我正面临这个问题,因为我试图使用“each”读取JSON字符串中的元素。

我的字符串如下。

jsonObj = "{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}" 

我使用了eval而且我已经使用过了

 var obj = $.parseJSON(jsonObj); 

我也用过

 var obj= eval("(" + jsonObj + ")"); 

但它一直都是空的

将字符串括在单引号中它应该有效。 试试这个。

 var jsonObj = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}'; var obj = $.parseJSON(jsonObj); 

演示

结合Saurabh Chandra Patel的答案和Molecular Man的观察 ,你应该有这样的事情:

 JSON.parse('{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}'); 

尝试:

 var myjson = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}'; var newJ= $.parseJSON(myjson); alert(newJ.TeamList[0].teamname); 

你的字符串无效。 双重报价不能在双引号内。 你应该逃避他们:

 "{\"TeamList\" : [{\"teamid\" : \"1\",\"teamname\" : \"Barcelona\"}]}" 

或使用单引号和双引号

 '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}' 

快速回答,这个评估工作:

 eval('var obj = {"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}') 

只有js

  JSON.parse(jsonObj); 

参考