如何将json / array从ajax responseText转换为javascript数组?

时间:2012-01-31 05:21:37

标签: javascript ajax json

我在代码中使用了ajax,它完美地运行并给了我想要作为输出的json或数组。 我使用的代码是,

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

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

这个测试变量给了我json / array。

我想在JavaScript数组中获取测试变量中收到的数据。

问题是,如何解码javascript数组中的json数据? 我已将代码用作

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

但是这段代码没有给我任何输出 我怎么能做这两件事?

3 个答案:

答案 0 :(得分:21)

大多数浏览器支持JSON.parse()。它的用法很简单:


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

对于不适合的浏览器,您可以使用json2.js实现它。

答案 1 :(得分:15)

试试这个:

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

答案 2 :(得分:2)

json只是javascript对象表示法。 你只需按照Sudhir的建议解析它。 您也可以使用jQuery.parseJSON。

要做ajax,我强烈建议你使用一些库,最好是jQuery。

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