2012-02-06 295 views
27

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

我的字符串在下面给出。

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

我用eval,我已经使用

var obj = $.parseJSON(jsonObj); 

,我也使用

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

但说到空所有的时间

+1

你试过单引号? '{“TeamList”:[{“teamid”:“1”,“teamname”:“Barcelona”}]}'' – 2012-02-06 18:13:42

+1

eval为我工作 – 2012-02-06 18:15:19

+0

可能的重复http://stackoverflow.com/questions/45015/safely -turning-a-json-string-into-an-object?rq = 1 – 2013-05-08 07:53:19

回答

59

用单串引用它应该工作。尝试这个。

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

Demo

4

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

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

,或者使用单引号和双引号

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

快速的答案,这EVAL工作:

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

尝试:

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

非常感谢你的代码'$ .parseJSON(myjson)'。这真的很有用。 – 2012-06-21 10:31:15