2012-01-31 82 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/