Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Hacer un for(); con resultado de un JSON

Estas en el tema de Hacer un for(); con resultado de un JSON en el foro de Frameworks JS en Foros del Web. Hola, buenas noches, estoy trabajando con una api de google, y tengo una duda que es la siguiente. Devuelve un resultado en JSON con una ...
  #1 (permalink)  
Antiguo 29/08/2011, 18:48
 
Fecha de Ingreso: septiembre-2009
Ubicación: España
Mensajes: 136
Antigüedad: 14 años, 7 meses
Puntos: 0
Hacer un for(); con resultado de un JSON

Hola, buenas noches, estoy trabajando con una api de google, y tengo una duda que es la siguiente.
Devuelve un resultado en JSON con una lista de asociados, (Ejemplo):

Cita:
[{asociados":[XXXXX,YYYYY,JJJJJJ,AAAAAA]}]
El tipo de JSON es un array.

Ahora lo que no se hacer es un for(); en javascript para tomar una accion sobre cada asociado. Es decir, repetir una misma accion para todos los asociados listados. Tengo entendido que se puede hacer con un for(); pero no entiendo como

¿Alguien puede ayudarme con esto por favor? :S

Muchas gracias, un saludo.
  #2 (permalink)  
Antiguo 29/08/2011, 18:55
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Hacer un for(); con resultado de un JSON

buenas,
es tan simple como condicionar el ciclo por la longitud del array más una variable que itere un número de uno en uno.
Código:
for(var index = 0; index < longitud; index++){
// la siguiente linea obtiene el valor del elemento indicado por index;
array[index];
}
la variable numérica la inicias a cero porque todos los índices de array comienzan en cero. luego comparas que la variable sea menor que la longitud del array. la longitud la obtienes mediante la propiedad length del array. finalmente, en el cuerpo del ciclo realizas lo necesario para cada elemento del array indicando el nombre del array y en corchetes la variable que itera.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 30/08/2011, 08:28
 
Fecha de Ingreso: septiembre-2009
Ubicación: España
Mensajes: 136
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Hacer un for(); con resultado de un JSON

Gracias por responder, pero creo que estoy haciendo algo mal y no se que es, voy a poner el codigo aqui:

Cita:
...

var datos2 = '{"usuario":"'+ nombre +'","peticion":[["share",{"asociado":"'+ array[index]; +'"}]]}';

$.ajax({
url: url,
type: "POST",
data: datos,
success: function(listarAsociados){

for (var index = 0; index < asociados.length; index++){

$.ajax({
url: url,
type: "POST",
data: datos2,
success: function(Recomendar){
}
});
}
}
});
Realmente ese es todo el codigo que lista a los asociados y despues cuando success hace el for() para recomendar a los asociados.

He probado de todo, pero no he conseguido nada. ¿Que puede ser?

Gracias de nuevo y un saludo.
  #4 (permalink)  
Antiguo 30/08/2011, 13:07
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Hacer un for(); con resultado de un JSON

la verdad, no entiendo lo que quieres hacer. más o menos entiendo el código. realizas una petición con ajax enviando ciertos datos. en la respuesta de éste, tienes un bucle que realiza otras peticiones ajax por cada elemento del array. sin embargo, ¿de donde viene esto? asociados.length; en particular, ¿donde esta definido asociados? te recomendaría que mires la consola de error del navegador, éste debe proveerte información útil.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 30/08/2011, 14:08
 
Fecha de Ingreso: septiembre-2009
Ubicación: España
Mensajes: 136
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Hacer un for(); con resultado de un JSON

El codigo en cuestion tendria que hacer es recojer a los asociados y mandarles una recomendacion de uno en uno.

El primer ajax busca a los asociados que los devuelve de esta forma:
Cita:
[{asociados":[XXXXX,YYYYY,JJJJJJ,AAAAAA]}]
En un JSON array. Pero no imprime el dato en pantalla.

Y dentro de ese ajax cuando success, coloco la reitaracion:

Cita:
for (var index = 0; index < asociados.length; index++){
Y tienes razon, asociados no esta definido, pero pense que recojeria el dato del array.

Esto es todo el codigo que tengo hecho:

Cita:
var datos2 = '{"usuario":"'+ nombre +'","peticion":[["share",{"asociado":"'+ array[index]; +'"}]]}';

$.ajax({
url: url,
type: "POST",
data: datos,
success: function(listarAsociados){

for (var index = 0; index < asociados.length; index++){

$.ajax({
url: url,
type: "POST",
data: datos2,
success: function(Recomendar){
}
});
}
}
});
Yo es que no se que es lo que estoy haciendo mal, y lo unico que me salta en la consola del navegador es que la variable asociados no esta definida, y la modifique por listarAsociados y no salio mas.



No se que mas probar.

Si me puedes orientar un poco me harias un gran favor, muchas gracias por ayudar.
  #6 (permalink)  
Antiguo 30/08/2011, 16:26
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Hacer un for(); con resultado de un JSON

por eso comentaba, donde estaba definido asociados. si la primera petición de ajax es la quien devuelve el array, entonces la variable listarAsociados es la que contiene el json que señalas al inicio. ahora bien, fijate que tienes dos arrays: el array json, y otro array de la propiedad asociados. primero tienes que acceder al primer elemento del array (json) y luego accedes a la propiedad asociados. desde este último es la que debes realizar el recorrido.
Código:
listarAsociados[0].asociados; // array de la propiedad asociados;
nota: puede ser que la variable listarAsociados no sea un array, sino un string. depende el tipo de dato que la libreria determine es la correcta. consulta la documentación para más información. asumo que estas usando jquery.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 30/08/2011, 19:33
 
Fecha de Ingreso: septiembre-2009
Ubicación: España
Mensajes: 136
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Hacer un for(); con resultado de un JSON

Perdon por esta pregunta absurda, pero ¿como se accede al primer elemento y luego a la propiedad?
Si, estoy usando jquery.

Muchas gracias, un cordial saludo.

Etiquetas: javascript, js, json, resultados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:02.