2012-01-31 49 views
15

He usado ajax en el código que funciona perfectamente y me da json o array que siempre quiero como salida. el código que he utilizado es,cómo convertir json/array de ajax responseText in a javascript array?

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

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

Esta variable de prueba me da JSON/matriz.

Quiero obtener los datos que recibí en la variable de prueba en la matriz de JavaScript.

La pregunta es, ¿cómo puedo decodificar datos json en javascript array? He utilizado el código como,

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

pero este código no me da ninguna salida.
¿Cómo puedo hacer esto dos cosas?

+2

un peso abajo de una aplicación web con toda la biblioteca jQuery sería una exageración si todo esto requiere es la lógica de un controlador de JSON ajax – ComethTheNerd

Respuesta

13

Prueba esto:

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

Si no se soluciona el problema, entonces en el código php, utilice sencilla json_encode(your array); y en Javascript, utilice myData= eval("(" + xmlHttp.responseText + ")");.

me sugieren que usted siga este enfoque:

codificar los datos que desea enviar mediante el uso de un PHP binding for JSON en el servidor y decodificar la misma utilizando Javascript library for JSON. como:

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

o

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

Nota: Incluir json2 archivo JavaScript a su solución ..

Problem with storing values in Array from php to AJAX

+0

¡Absolutamente! Obtuve un objeto responseText en lugar de un tipo simple. Usando este enfoque (y conociendo un poco sobre el objeto), puedo extraer el campo ** d ** que es el booleano que me preocupa en este caso. – Allen

+0

WTH, POR FAVOR, no use la opción 'eval' de decodificación del json, es una vulnerabilidad xss evidente – T0m

18

La mayoría de los navegadores son compatibles con JSON.parse(). Su uso es simple:

 

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

Para los navegadores que no se pueden implementar usando json2.js.

+0

he utilizado este also.But no es working.It no soy yo dando cualquier salida –

1

JSON es nada más que notación de objetos JavaScript. Solo tiene que analizarlo como lo sugiere Sudhir. También puede usar jQuery.parseJSON para ello.

Y para hacer ajax, sugiero que use alguna biblioteca, preferiblemente jQuery.

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

Cuestiones relacionadas