Как преобразовать json/array из ajax responseText в массив javascript?

Я использовал 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.

Вопрос в том, как я могу декодировать json-данные в массиве javascript? Я использовал код как

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

но этот код не дает мне никакого результата.
Как я могу это сделать?

Ответы

Ответ 1

Попробуйте следующее:

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

Если это не решит вашу проблему, то в вашем php-коде используйте простой json_encode(your array); и на javascript, используйте myData= eval("(" + xmlHttp.responseText + ")");.

Я предлагаю вам следовать этому подходу:

Кодировать данные, которые вы хотите отправить, используя привязку PHP для JSON на сервере и декодировать то же самое, используя Javascript-библиотека для JSON. как:

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

или

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

Примечание. Включите javascript файл json2 в ваше решение.

Проблема с сохранением значений в массиве от php до AJAX

Ответ 2

Большинство браузеров поддерживают JSON.parse(). Его использование прост:


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

Для браузеров, которые вы не можете реализовать, используя json2.js.

Ответ 3

json - это не что иное, как обозначение объекта javascript. Вам просто нужно разобрать его, как это предлагает Суджир. Вы также можете использовать jQuery.parseJSON для него.

И чтобы сделать ajax, я настоятельно рекомендую вам использовать некоторую библиотеку, предпочтительно jQuery.

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