2012-01-31 32 views
15

Użyłem ajax w kodzie, który działa idealnie i daje mi json lub tablicę, którą zawsze chcę jako wyjście. kod użyłem jestjak przekonwertować json/tablica z ajax responseText do tablicy javascript?

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

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

Zmienna ta próba daje mi json/tablica.

Chcę uzyskać dane, które otrzymałem w zmiennej testowej w tablicy JavaScript.

Pytanie brzmi, w jaki sposób mogę dekodować dane json w tablicy javascript? Użyłem kodu jak

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

ale ten kod nie daje mi żadnych wyników.
Jak mogę zrobić dwie rzeczy?

+2

Ważenie dół aplikację całej biblioteki jQuery byłoby przesadą, jeśli wymaga tego wszystkiego jest logika dla obsługi ajax json – ComethTheNerd

Odpowiedz

13

Spróbuj tego:

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

Jeśli to nie rozwiązuje problemu, a następnie w kodzie php, użyj prosty json_encode(your array); i javascript, użyj myData= eval("(" + xmlHttp.responseText + ")");.

Proponuję śledzić tego podejścia:

zakodować dane chcesz wysłać za pomocą PHP binding for JSON na serwerze i dekodowania to samo przy użyciu Javascript library for JSON. jak:

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

lub

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

Uwaga: Dołącz json2 pliku JavaScript do rozwiązania ..

Problem with storing values in Array from php to AJAX

+0

Absolutnie! Otrzymałem obiekt responseText zamiast zwykłego typu. Korzystając z tego podejścia (i znając trochę na temat obiektu), mogę wyodrębnić pole ** d **, które jest w moim przypadku wartością boolowską. – Allen

+0

WTH, PROSZĘ, nie używaj opcji 'eval' przy dekodowaniu jsona, jest to rażąca usterka xss – T0m

18

Większość przeglądarek obsługuje JSON.parse(). Jego użycie jest proste:

 

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

Dla przeglądarek, które nie można wdrożyć go za pomocą json2.js.

+0

Użyłem tej also.But jej nie working.It nie daje mi żadnej wyjście –

1

JSON jest niczym innym JavaScript Object Notation. Trzeba tylko przeanalizować, jak sugeruje Sudhir. Można również użyć do tego jQuery.parseJSON.

I do wykonania ajax, zdecydowanie zaleca się korzystanie z biblioteki, najlepiej jQuery.

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

Powiązane problemy