2012-02-06 54 views
27

Làm cách nào để chuyển đổi chuỗi thành đối tượng? Tôi đang đối mặt với vấn đề này bởi vì tôi đang cố gắng đọc các phần tử trong chuỗi JSON bằng cách sử dụng "mỗi".Chuyển đổi chuỗi thành đối tượng JSON

Chuỗi của tôi được đưa ra dưới đây.

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

Tôi đã sử dụng eval và tôi đã sử dụng

var obj = $.parseJSON(jsonObj); 

Và tôi cũng đã sử dụng

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

Nhưng nói rỗng tất cả các thời gian

+1

Bạn đã thử dấu nháy đơn? ''{" TeamList ": [{" teamid ":" 1 "," teamname ":" Barcelona "}]}'' –

+1

eval hoạt động cho tôi –

+0

có thể trùng lặp http://stackoverflow.com/questions/45015/safely -turning-a-json-string-thành-an-đối tượng? rq = 1 –

Trả lời

59

Kèm theo chuỗi trong đơn báo giá nó sẽ hoạt động. Thử cái này.

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

Demo

4

chuỗi bạn không hợp lệ. Các quots đôi không thể nằm trong dấu ngoặc kép. Bạn nên thoát họ:

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

hoặc sử dụng dấu ngoặc đơn và dấu ngoặc kép

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

câu trả lời nhanh, điều này eval công việc:

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

thử:

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

Cảm ơn bạn rất nhiều vì mã của bạn '$ .parseJSON (myjson)'. Nó thực sự hiệu quả. –

Các vấn đề liên quan