2012-01-31 44 views
15

Tôi đã sử dụng ajax trong mã hoạt động hoàn hảo và cho tôi json hoặc mảng mà tôi từng muốn làm đầu ra. mã tôi đã sử dụng là,làm thế nào để chuyển đổi json/mảng từ ajax responseText trong mảng javascript?

xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","http://map_ajax_control.php",false); 
xmlhttp.send(); 

var test = xmlhttp.responseText; 
alert(test); 

Biến kiểm tra này cho tôi json/mảng.

Tôi muốn lấy dữ liệu mà tôi đã nhận được trong biến kiểm tra trong mảng JavaScript.

Câu hỏi đặt ra là, làm thế nào tôi có thể giải mã dữ liệu json trong mảng javascript? Tôi đã sử dụng mã như,

var output = new Array(); 
output = json_decode(xmlhttp.responseText); 

nhưng mã này không cho tôi bất kỳ đầu ra nào.
Làm cách nào để tôi thực hiện hai việc này?

+2

Trọng lượng xuống một ứng dụng web với toàn bộ thư viện jQuery sẽ là quá mức cần thiết nếu tất cả các điều này đòi hỏi là logic cho một handler json ajax – ComethTheNerd

Trả lời

13

Hãy thử điều này:

var arr = xmlhttp.responseText.Split(','); 

Nếu nó không giải quyết vấn đề của bạn thì trong mã php của bạn, sử dụng đơn giản json_encode(your array); và javascript, sử dụng myData= eval("(" + xmlHttp.responseText + ")");.

tôi đề nghị bạn làm theo phương pháp này:

Mã hóa dữ liệu bạn muốn gửi bằng cách sử dụng một PHP binding for JSON tại máy chủ và giải mã tương tự sử dụng Javascript library for JSON. như:

var myObject = eval('(' + myJSONtext + ')'); 

hoặc

var myObject = JSON.parse(myJSONtext, reviver); 

Lưu ý: Bao gồm json2 javascript tập tin vào giải pháp của bạn ..

Problem with storing values in Array from php to AJAX

+0

Tuyệt đối! Tôi đã nhận được một đối tượng responseText thay vì một kiểu đơn giản. Sử dụng cách tiếp cận này (và biết một chút về đối tượng), tôi có thể trích xuất trường ** d ** là boolean mà tôi quan tâm trong trường hợp này. – Allen

+0

WTH, XIN không sử dụng tùy chọn 'eval' giải mã json, nó là lỗ hổng xss trắng trợn – T0m

18

Hầu hết các trình duyệt đều hỗ trợ JSON.parse(). Cách sử dụng của nó rất đơn giản:

 

obj = JSON.parse(xmlhttp.responseText); 
alert(obj.length); 
 

Đối với các trình duyệt mà bạn không thể thực hiện bằng cách sử dụng json2.js.

+0

tôi đã sử dụng này also.But nó không working.It là không cho tôi bất kỳ đầu ra –

1

json là gì, nhưng chú thích đối tượng javascript. Bạn chỉ cần phân tích nó theo gợi ý của Sudhir. Bạn cũng có thể sử dụng jQuery.parseJSON cho nó.

Và để thực hiện ajax, tôi khuyên bạn nên sử dụng một số thư viện, tốt nhất là jQuery.

http://api.jquery.com/jQuery.ajax/

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