Как преобразовать 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/