JQuery - json por jquery acceso a datos array de datos

 
Vista:
Imágen de perfil de Jose maria
Val: 32
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

json por jquery acceso a datos array de datos

Publicado por Jose maria (8 intervenciones) el 15/09/2013 16:37:05
Hola a todos:

Estoy conformando un json a partir de mi base de datos:
1
2
3
4
5
6
7
8
9
10
<?php
mysql_query('SET CHARACTER SET utf8');
    $res = mysql_query("SELECT * FROM mi_tabla ORDER BY en_este_caso_id");
    $array = array();
    while($obj = mysql_fetch_object($res)) {
        $array []= $obj;
    }
    // echo '' . json_encode($array, JSON_UNESCAPED_UNICODE) . '';
    file_put_contents("rutaq_al_archivo.json", json_encode($array, JSON_UNESCAPED_UNICODE));
?>

Nota; JSON_UNESCAPED_UNICODE es el que corrige los datos de acentos, eñes, etc. correctamente (a partir de php 5.4)

El resultado (es una prueba local y literal):
1
[{"idruta":"00000002","ruta":"VGBAR01","origen":"Vitoria-Gasteiz, Álava, España","latorigen":"42.859653","lngorigen":"-2.681649","destino":"Barcelona, España","latdestino":"41.385048","lngdestino":"2.173416","waypoints":"(42.8405390,-1.6829537),(41.7870155,-1.2452868),(41.5577848,0.5719991),(41.1360642,1.1013598)","travelMode":"DRIVING","avoidHighways":"false","avoidTolls":"true"},{"idruta":"00000003","ruta":"BIOVIG01","origen":"Bilbao, Vizcaya, España","latorigen":"43.256706","lngorigen":"-2.924113","destino":"Vigo, Pontevedra, España","latdestino":"42.240616","lngdestino":"-8.720695","waypoints":"{43.3109587,-3.9243324},{42.4496043,-3.4831784},{41.6609780,-4.6865778},{42.5856973,-5.5509483},{42.9815923,-7.5619522}","travelMode":"DRIVING","avoidHighways":"true","avoidTolls":"false"}]


Todo correcto para acceder a idruta, ruta ...

pero no puedo acceder a waypoints como array (me lo muestra por el total de caracteres) sea que lo inserte entre [] : {} ; () Siempre me devuelve
1
alert (data[i].waypoints.length);

con el número de caracteres y no como array [] .

¿Alguien tiene alguna experiencia de trabajo en el tema?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jose maria
Val: 32
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

json por jquery acceso a datos array de datos

Publicado por Jose maria (8 intervenciones) el 16/09/2013 15:31:15
Para los que tengan interés en el tema, pude solucionarlo (después de horas dando palos de ciego ) de la forma siguiente:

- Teníamos un json con el siguiente campo problemático:
1
[{... , ... ,"waypoints":"[42.8405390,-1.6829537],[41.7870155,-1.2452868],[41.5577848,0.5719991],[41.1360642,1.1013598]",... , ,,,},{... , ... ,"waypoints":"[43.3109587,-3.9243324],[42.4496043,-3.4831784],[41.6609780,-4.6865778],[42.5856973,-5.5509483],[42.9815923,-7.5619522]",,... , ,,,}]
Leemos los campos mediante:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$.getJSON('ruta_archivo.json', function (data) {
    for (var i = 0; i < data.length; i++) {
/* ... */
          var waypoints = eval ( '['  + data[i].waypoints +  ']' );
/* Ahora sí alert (waypoints.length); muestra como array con pares de campos tales
como [42.4496043,-3.4831784] que los recojo como waypoints[j][0] y waypoints[j][1] */
          var wp = [];
		  for (var j = 0; j < waypoints.length; j++){
		    wp.push({'location': new google.maps.LatLng(parseFloat(waypoints[j][0]),parseFloat(waypoints[j][1])),'stopover':false});
/* Esta parte corresponde al cógido especifico de mi interés para google maps (waypoints) */
		  }
/* ... */
    }
  });

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

json por jquery acceso a datos array de datos

Publicado por xve (673 intervenciones) el 16/09/2013 15:40:51
Gracias por comentarlo Jose Maria!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar