Foros del Web » Programando para Internet » Javascript »

Acceder y recorrer JSON

Estas en el tema de Acceder y recorrer JSON en el foro de Javascript en Foros del Web. Hola gente, como están? La verdad me encuentro con un problema que no puedo resolver hace algunos dias. Como verán no conozco mucho de Javascript ...
  #1 (permalink)  
Antiguo 21/10/2011, 16:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 1
Acceder y recorrer JSON

Hola gente, como están?

La verdad me encuentro con un problema que no puedo resolver hace algunos dias. Como verán no conozco mucho de Javascript así que luego de fracasar siguiendo varios tutoriales y threads del foro es que pido una mano aqui.

Quiero acceder a este JSON (que se obtiene mediante PHP haciendo una query a una db MySQL) y recorrerlo en Javascript. El JSON devuelto por el php es el siguiente:

Código HTML:
{
  "Resultados":[
    {
      "HORA_DESDE":"01:00:00",
      "HORA_LUNES":"N",
      "HORA_MARTES":"N",
      "HORA_MIERCOLES":"N",
      "HORA_JUEVES":"N",
      "HORA_VIERNES":"S",
      "HORA_SABADO":"S",
      "HORA_DOMINGO":"N",
      "TRASNOCHE":"S"
    },
    {
      "HORA_DESDE":"15:25:00",
      "HORA_LUNES":"S",
      "HORA_MARTES":"S",
      "HORA_MIERCOLES":"S",
      "HORA_JUEVES":"S",
      "HORA_VIERNES":"S",
      "HORA_SABADO":"S",
      "HORA_DOMINGO":"S",
      "TRASNOCHE":"N"
    },
    {
      "HORA_DESDE":"17:50:00",
      "HORA_LUNES":"S",
      "HORA_MARTES":"S",
      "HORA_MIERCOLES":"S",
      "HORA_JUEVES":"S",
      "HORA_VIERNES":"S",
      "HORA_SABADO":"S",
      "HORA_DOMINGO":"S",
      "TRASNOCHE":"N"
    },
    {
      "HORA_DESDE":"20:15:00",
      "HORA_LUNES":"S",
      "HORA_MARTES":"S",
      "HORA_MIERCOLES":"S",
      "HORA_JUEVES":"S",
      "HORA_VIERNES":"S",
      "HORA_SABADO":"S",
      "HORA_DOMINGO":"S",
      "TRASNOCHE":"N"
    },
    {
      "HORA_DESDE":"22:40:00",
      "HORA_LUNES":"S",
      "HORA_MARTES":"S",
      "HORA_MIERCOLES":"S",
      "HORA_JUEVES":"S",
      "HORA_VIERNES":"S",
      "HORA_SABADO":"S",
      "HORA_DOMINGO":"S",
      "TRASNOCHE":"N"
    }
  ]
}

Checkie el formato del JSON con distintas herramientas online y al parecer la sintaxis del mismo es correcta.



Para acceder estoy probando la siguiente sintaxis:

Código:
alert(jsonHorarios.Resultados[2].HORA_DESDE);
obtengo un error de: jsonHorarios.Resultados is undefined



Aunque por el contrario si hago un alert del JSON entero como:

Código:
alert(jsonHorarios);
El resultado se imprime correctamente!


Desde ya mil gracias si me pudieran indicar en que estoy fallando. Luego quisiera recorrer este JSON, para darle un formato en HTML. Tambien me seria de mucha ayuda si me indican algún metodo indicado para lograr esto.

Gracias de nuevo, saludos!
  #2 (permalink)  
Antiguo 29/06/2012, 22:32
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Respuesta: Acceder y recorrer JSON

evalua la variable jsonHorarios para que se tome el objeto en formato json.

var jsonHorarios = eval('(' + jsonHorarios + ')');

o si no prueba con:

var jsonHorarios = eval(jsonHorarios);

y despues...

alert(jsonHorarios.Resultados[2].HORA_DESDE);
  #3 (permalink)  
Antiguo 30/06/2012, 07:43
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Acceder y recorrer JSON

es correcto, suponiendo que se te haya pasado mostrarnos
Cita:
jsonHorarios = {
"Resultados":[
{
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 01/07/2012, 18:16
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Respuesta: Acceder y recorrer JSON

Y para recorrer tu json y pasarlo a html puede ser asi:

1. A un div existente le añades html con jquery o javascript nativo, aqui el ejemplo con jquery:


creas una funcion que genere tu hml:

Código Javascript:
Ver original
  1. function crearHTML(objetojson){
  2.  
  3. //suponiendo que lo que quieres ver es una tabla
  4. var html = "";
  5.  var titulostabla = "<tr><td>HORA DESDE</td><td>HORA LUNES</td><td>HORA MARTES</td><td>HORA MIERCOLES</td><td>HORA JUEVES</td><td>HORA VIERNES</td><td>HORA SABADO</td><td>HORA DOMINGO</td><td>TRASNOCHE</td></tr>";
  6. var datos = "";
  7. //recorremos el json
  8.  
  9. for(var i = 0; i < objetojson[0].Resultados.length;i++){
  10.  
  11. datos= datos+"<tr><td>"+objetojson[0].Resultados[i].HORA_DESDE+"</td><td>"+objetojson[0].Resultados[i].HORA_LUNES+"</td><td>"+objetojson[0].Resultados[i].HORA_MARTES+"</td><td>"+objetojson[0].Resultados[i].HORA_MIERCOLES+"</td><td>"+objetojson[0].Resultados[i].HORA_JUEVES+"</td><td>"+objetojson[0].Resultados[i].HORA_VIERNES+"</td><td>"+objetojson[0].Resultados[i].HORA_SABADO+"</td><td>"+objetojson[0].Resultados[i].HORA_DOMINGO+"</td><td>"+objetojson[0].Resultados[i].TRASNOCHE+"</td></tr>";
  12. }
  13.  
  14. //unimos encabezados y datos
  15.  
  16. html = "<table>"+titulostabla+datos+"</table>";
  17.  
  18. return html;
  19.  
  20. }

el objeto json previamente parseado desde la respuesta json que recibes

Código Javascript:
Ver original
  1. objetojson = eval(jsonrecibido);
  2. var html =  crearHTML(objetojson);
  3.  
  4. /*agregamos al div el html generado*/
  5. $("#midiv").html(html);

Etiquetas: html, js, json, php
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 12:48.