2012-01-31 64 views
15

我已經在完美的代碼中使用了ajax,併爲我提供了我想要的json或數組作爲輸出。 我已經使用的代碼是,如何將json/array從ajax responseText轉換爲javascript數組?

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

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

該測試變量給我JSON /陣列。

我想獲得我在JavaScript數組中測試變量中收到的數據。

問題是,我如何解碼JavaScript數組中的json數據? 我已經使用了代碼,

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

但是這個代碼不給我任何輸出。
我該怎麼做這兩件事?

+2

拖累與整個jQuery庫的web應用程序將是矯枉過正,如果這一切需要的是一個JSON AJAX處理 – ComethTheNerd 2014-09-13 12:13:16

回答

13

試試這個:

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

如果不解決您的問題,那麼在你的PHP代碼,使用簡單的json_encode(your array);,然後在JavaScript中,使用myData= eval("(" + xmlHttp.responseText + ")");

我建議你採用這種做法:您希望通過使用PHP binding for JSON在服務器發送和解碼數據使用Javascript library for JSON相同

編碼。 爲:

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

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

注:包括json2 javascript文件到您的解決方案..

Problem with storing values in Array from php to AJAX

+0

絕對!我得到的是一個responseText對象,而不是一個簡單的類型。使用這種方法(並且瞭解一些關於對象的知識),我可以提取** d **,這是我在這種情況下關心的布爾值。 – Allen 2015-11-02 20:01:14

+0

WTH,請不要使用解碼json的'eval'選項,這是一個明顯的xss漏洞 – T0m 2017-08-22 20:20:09

18

大多數瀏覽器支持JSON.parse()。它的用法很簡單:

 

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

對於不使用你可以json2.js實現它的瀏覽器。

+0

我已經使用這個also.But它不是working.It沒有給我任何的邏輯輸出 – 2012-01-31 05:41:59

1

JSON是什麼,但JavaScript對象符號。 你只需要按照Sudhir的建議解析它。 你也可以使用jQuery.parseJSON。

爲了做ajax,我強烈建議你使用一些庫,最好是jQuery。

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