En la devolución de llamada de éxito jQuery AJAX, quiero recorrer los resultados del objeto. Este es un ejemplo de cómo se ve la respuesta en Firebug.
[
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]
¿Cómo puedo recorrer los resultados para tener acceso a cada uno de los elementos? He intentado algo como a continuación, pero esto no parece estar funcionando.
jQuery.each(data, function(index, itemData) {
// itemData.TEST1
// itemData.TEST2
// itemData.TEST3
});
Respuestas:
Puede eliminar el bucle externo y reemplazarlo
this
condata.data
:Estuviste cerca:
Tiene una matriz de objetos / mapas, por lo que el bucle externo itera sobre ellos. El bucle interno itera sobre las propiedades de cada elemento del objeto.
fuente
$(data)
lugar dedata
, de lo contrario, la variablek
siempre devuelve 0.También puede usar la función getJSON :
Esto es solo una nueva redacción de la respuesta de ifesdjeen, pero pensé que podría ser útil para las personas.
fuente
Si usa Fire Fox, simplemente abra una consola (use la tecla F12) y pruebe esto:
Espero eso ayude
fuente
Para cualquier otra persona atascada con esto, probablemente no esté funcionando porque la llamada ajax está interpretando sus datos devueltos como texto, es decir, todavía no es un objeto JSON.
Puede convertirlo en un objeto JSON utilizando manualmente el comando parseJSON o simplemente agregando la propiedad dataType: 'json' a su llamada ajax. p.ej
fuente
Uncaught TypeError: Cannot use 'in' operator to search for '188' in
obteniendo ese error.Acceda a la matriz json como lo haría con cualquier otra matriz.
fuente
[0]
, la siguiente[1]
, y así sucesivamente.Esto es lo que se me ocurrió para ver fácilmente todos los valores de datos:
fuente
Prueba la función jQuery.map , funciona bastante bien con los mapas.
fuente
si no quieres alerta, es decir, si quieres html, entonces haz esto
NOTA: use "append", no "html", de lo contrario, el último resultado es lo que verá en su vista html
entonces su código html debería verse así
También puede diseñar (agregar clase) el div en jquery antes de que se represente como html
fuente
Si está utilizando el método corto de la función de llamada JQuery ajax como se muestra a continuación, los datos devueltos deben interpretarse como un objeto json para que pueda recorrerlos.
fuente
Soy parcial a la función de flecha ES2015 para encontrar valores en una matriz
Checkout Array.prototype.find () AQUÍ
fuente
$each
funcionará ... Otra opción es jQuery Ajax Callback para el resultado de la matrizfuente
Yo uso .map para foreach. Por ejemplo
fuente