Foros del Web » Programando para Internet » Javascript »

Obtener valor de un array de un objeto

Estas en el tema de Obtener valor de un array de un objeto en el foro de Javascript en Foros del Web. Buenas, os cuento por si alguno pudiera tener una respuesta: En una pagina HTML con un pequeño script estoy manejando un objeto llamado "llamada". Sin ...
  #1 (permalink)  
Antiguo 29/09/2015, 03:13
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 0
Obtener valor de un array de un objeto

Buenas, os cuento por si alguno pudiera tener una respuesta:

En una pagina HTML con un pequeño script estoy manejando un objeto llamado "llamada". Sin entrar en detalles es un objeto que me llega desde una aplicación externa y que viene cargado con mucha información. En general puedo sacar por pantalla con ALERT casi toda la información que necesito de este objeto. Para que os hagáis una idea de lo que trae el objeto y lo que estoy sacando os muestro dos capturas de pantalla del explorar de errores de Internet Explorer (la segunda con el error que estoy teniendo al sacar uno de los datos):






Desde el script puedo hacer los siguientes alert y todos dan el valor correcto:

alert(llamada.CalledNumber); ---> Devuelve "6603"
alert(llamada.CallInfo.CallingNumber); ---> Devuelve "4685"
alert(llamada.CallInfo.GroupName); ---> Devuelve "Prueba22"


Pues bien, el problema es que no consigo sacar el valor que en teoria deberia salir con:

alert(llamada.CallInfo.IVRData[0]); ---> Deberia devolver "12345678"
alert(llamada.CallInfo.IVRLabels[0]); ---> Deberia devolver "Cabecera1"


Obtengo un errore "Se esperaba una funcion". Viendo el explorar de errores es evidente que el valor esta ahí y que simplemente no se como sacarlo. Ademas, he probado a hacer una aplicación sencilla en .NET que lea este objeto y efectivamente usando una llamada del tipo "llamada.CallInfo.IVRLabels[0].tostring()" consigo sacar el dato.

he probado todo esto:

alert(string(llamada.CallInfo.IVRLabels[0]));
alert(llamada.CallInfo.IVRLabels);
alert(llamada.CallInfo.IVRLabels(0));
alert(llamada.CallInfo.IVRLabels[0].toString());

Pero nada.....

Alguna idea?.

Muchas gracias por la ayuda.
  #2 (permalink)  
Antiguo 03/10/2015, 00:42
 
Fecha de Ingreso: agosto-2015
Ubicación: En Carúpano
Mensajes: 49
Antigüedad: 8 años, 8 meses
Puntos: 12
Respuesta: Obtener valor de un array de un objeto

//
Código Javascript:
Ver original
  1. //intenta hacer esto para verificar que ese array esta definido:
  2. console.log(llamada.CallInfo.IVRData)
  3. // y esto esto para que veas por decir un arbol de los valores que se encuentran almacenados en ese array:
  4. for(i in llamada.CallInfo.IVRData){
  5. console.log(i+':'+llamada.CallInfo.IVRData[i])
  6. }
  7. //ESTO LO VERIFICAS EN LA CONSOLA DE TU NAVEGADOR YA QUE APARECERAN VARIOS MENSAJES DEPENDIENDO DE LA CANTIDAD DE VALORES QUE TENGAS DEFINIDOS EN ESOS OBJETOS.
  8. //en la segunda prueba en la consola aparecera algo parecido a esto como esto 0 : 12345678
  #3 (permalink)  
Antiguo 13/10/2015, 04:55
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Obtener valor de un array de un objeto

Perdona larrysun2, ya habia descartado que alguien respondiera y acabo de ver tu respuesta.

He hecho la prueba que me indicas y si pongo por ejemplo:

console.log("1->"+llamada.CallInfo.GroupName);

console.log("2->"+llamada.CallInfo.IVRData);


veo en la consola que sale el mensaje que empieza por "1->", pero al intentar sacar el otro tengo el error "El objeto no acepta esta propiedad o metodo".

Supongo que es realmente raro lo que pueda estar pasando, que en la primera imagen que adjunte a este hilo, se ve claramente como el navegador sabe que esa variables esta ahí, y sabe el contenido que tiene "12345678".


De cualquier forma, gracias por la ayuda.

Saludos.
  #4 (permalink)  
Antiguo 19/10/2015, 04:22
 
Fecha de Ingreso: octubre-2015
Mensajes: 2
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Obtener valor de un array de un objeto

Hola,

conseguiste dar con la solución? estoy en las mismas que tu.

Saludos
  #5 (permalink)  
Antiguo 19/10/2015, 09:26
Avatar de Cassers  
Fecha de Ingreso: octubre-2015
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 3
Respuesta: Obtener valor de un array de un objeto

amm ni idea de porque te pasa eso, ¿puedes postear el codigo completo?.

Intenta ver el contenido del objeto con esta función:

Código Javascript:
Ver original
  1. function inspeccionar(obj)
  2.     {
  3.       var msg = '';
  4.      
  5.       for (var property in obj)
  6.       {
  7.         if (typeof obj[property] == 'function')
  8.         {
  9.           var inicio = obj[property].toString().indexOf('function');
  10.           var fin = obj[property].toString().indexOf(')')+1;
  11.           var propertyValue=obj[property].toString().substring(inicio,fin);
  12.           msg +=(typeof obj[property])+' '+property+' : '+propertyValue+' ;\n';
  13.         }
  14.         else if (typeof obj[property] == 'unknown')
  15.         {
  16.           msg += 'unknown '+property+' : unknown ;\n';
  17.         }
  18.         else
  19.         {
  20.           msg +=(typeof obj[property])+' '+property+' : '+obj[property]+' ;\n';
  21.         }
  22.       }
  23.       return msg;
  24.     }
  #6 (permalink)  
Antiguo 20/10/2015, 00:41
 
Fecha de Ingreso: octubre-2015
Mensajes: 2
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Obtener valor de un array de un objeto

Ahora lo miro. De todas formas te pongo un pantallazo del valor al que se intenta acceder y no se puede. Yo creo que es un objeto .NET y desde javascript no se puede alcanzar, lo que me parece raro es que el depurador lo vea.

  #7 (permalink)  
Antiguo 29/10/2015, 02:53
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Obtener valor de un array de un objeto

Buenas txopo1,

disculpa, de nuevo después de varios días pensé que ya se había quedado muerto el tema.

Si, respecto a lo que decías si, la DLL esta en .NET. La función .NET devuelve un tipo String[] (array of string), que creo que javascript no lo reconoce, pero como bien comentas, como se veia en el depurador, suponíamos que de alguna forma se debe poder recoger ese valor.

Has podido hacer algo?, o directamente queda claro que no existe una forma de hacerlo?


Muchas gracias.

Etiquetas: funcion, html, objeto, valor
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 19:09.