2012-02-06 205 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