GOOGLE APIS EN FORMATO JSON

85 views
Skip to first unread message

Xavier Romero

unread,
Mar 28, 2012, 6:49:12 AM3/28/12
to javasc...@googlegroups.com
Hola a todos de esta comunidad  como puedo hacer para que los datos  GOOGLE APIS me devuelva en formato JSON, por ejemplo  yo tengo esta dirección
  http://www.google.com/ig/api?weather=ecuador,guayaquil pero quiero que me devuelva en formato JSON como lo haría ? gracias de antemano.


Saludos Cordiales 
Romero López Omar 

gnz/vnk

unread,
Mar 28, 2012, 7:05:23 AM3/28/12
to javasc...@googlegroups.com
Por lo que yo sé:
- esa API sólo devuelve XML
- esa API **no** es oficial

Satyam

unread,
Mar 28, 2012, 8:25:12 AM3/28/12
to javasc...@googlegroups.com
Podeis usar YQL para muchisimas consultas.

http://developer.yahoo.com/yql/

YQL no contiene informacion, es un servicio a trav�s del cual se puede
consultar otras fuentes de datos. YQL los normaliza y provee en varios
formatos, JSON, XML, JSONP con un lenguaje de consulta similar a SQL.
Entre las varias 'tablas' a consultar, hay de meteorolog�a.

Satyam

On 03/28/2012 01:05 PM, gnz/vnk wrote:
> Por lo que yo s�:
> - esa API s�lo devuelve XML


> - esa API **no** es oficial
>
> On Wed, Mar 28, 2012 at 12:49 PM, Xavier Romero
> <o.romer...@gmail.com> wrote:
>> Hola a todos de esta comunidad como puedo hacer para que los datos GOOGLE

>> APIS me devuelva en formato JSON, por ejemplo yo tengo esta direcci�n

>> devuelva en formato JSON como lo har�a ? gracias de antemano.
>>
>>
>> Saludos Cordiales
>> Romero L�pez Omar

Ivan Castellanos

unread,
Mar 28, 2012, 2:52:21 PM3/28/12
to javasc...@googlegroups.com
Para usar directamente el API de Google y luego transformar el XML a JSON 
Podeis usar YQL para muchisimas consultas.

http://developer.yahoo.com/yql/

YQL no contiene informacion, es un servicio a través del cual se puede consultar otras fuentes de datos.  YQL los normaliza y provee en varios formatos, JSON, XML, JSONP con un lenguaje de consulta similar a SQL.  Entre las varias 'tablas' a consultar, hay de meteorología.

Satyam




On 03/28/2012 01:05 PM, gnz/vnk wrote:
Por lo que yo sé:
- esa API sólo devuelve XML

- esa API **no** es oficial

On Wed, Mar 28, 2012 at 12:49 PM, Xavier Romero
<o.romer...@gmail.com>  wrote:
Hola a todos de esta comunidad  como puedo hacer para que los datos  GOOGLE
APIS me devuelva en formato JSON, por ejemplo  yo tengo esta dirección
devuelva en formato JSON como lo haría ? gracias de antemano.


Saludos Cordiales
Romero López Omar

Xavier Romero

unread,
Mar 29, 2012, 6:45:30 AM3/29/12
to javasc...@googlegroups.com
Hola a todos gracias a todos por sus respuestas estoy usando YQL bueno el caso es convertí mi xml a json mediante los yahoo API me genero este enlace -->  http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%20%3D%20%22http%3A%2F%2Fwww.google.com%2Fig%2Fapi%3Fweather%3Decuador%2Cguayaquil%22&format=json&callback=

bueno hasta ahí creo q todo bien pero estoy  tratando de recuperar algún dato del JSON creo que hago algo mal espero que me puedan ayudar con alguna sugerencia este es mi código  :

function loadDatos()
{
var rowData = [];
var loader = Titanium.Network.createHTTPClient();

loader.onload = function() 
{
var datos = eval('('+this.responseText+')');
    alert(datos["query"].result.xml_api_reply.weather.forecast_information.city);
 // alert(datos[0].result.xml_api_reply.weather.forecast_information.city);
              // alert(datos[0].result.xml_api_reply.weather.forecast_information.city.data);
}
loader.send();
}
loadDatos();




Al hacer un alert(datos);  esto me sale ahí les dejo un gráfico:  

Imágenes integradas 2


Como logro mostrar los datos ya intente de algunas formas pero no me funciona o que hago mal gracias por la ayuda de antemano .
image.png

Satyam

unread,
Mar 29, 2012, 7:24:06 AM3/29/12
to javasc...@googlegroups.com
En primer lugar, es "results", no "result".  Segundo, nunca uses eval() para decodificar JSON, la mayoría de los navegadores actuales tienen funciones para decodificar JSON y sino, hay funciones disponibles para ello, ver listado para muchos lenguajes al pie de:  http://json.org/

Finalmente, suele ser muy practico usar JSONP, cosa que YQL te provee simplemente dando el nombre de una funcion de callback.

Xavier Romero

unread,
Mar 29, 2012, 7:46:45 AM3/29/12
to javasc...@googlegroups.com
Hola amigo ya me funciono gracias por tu ayuda me olvide de la " S " fue un error al digital,  con lo de eval() aun se lo utiliza bueno estoy programando con el Framework Titanium Appcelerator y si tiene soporte para este Framework  en verdad gracias por su ayuda ya estoy medio cansado y no me fije en el error simple.:-) 

Satyam

unread,
Mar 29, 2012, 9:47:20 AM3/29/12
to javasc...@googlegroups.com
El eval es peligroso, en inglés dicen "eval is evil" (eval es malvado).  Impide que los compresores de código actúen, dado que al no saber qué es lo que pueden estar evaluando, no son libres de comprimir nombres de variables pues no saben si pueden ser utilizadas dentro del código evaluado.  En modo estricto, ya no es posible usarlo.  Sí, se usa, lo sé, pero no debieras.  La vieja revista MAD decía "un millón de moscas comen mierda, un millón de moscas no pueden equivocarse: ¡coma mierda!" 

Usa JSLint (jslint.org) para verificar tu JavaScript y sigue sus consejos.

Satyam

Valentin Starck

unread,
Mar 29, 2012, 9:52:48 AM3/29/12
to javasc...@googlegroups.com
En modo estricto si es posible usarlo, lo unico que cambia es que no puede alterar el scope. (related: https://developer.mozilla.org/en/JavaScript/Strict_mode#Making_eval_and_arguments_simpler)

Btw, JSHint > JSLint.

2012/3/29 Satyam <devas...@gmail.com>



--
Valentin Starck
blog.aijoona.com

Jose Antonio Perez

unread,
Mar 29, 2012, 12:21:07 PM3/29/12
to javasc...@googlegroups.com

2012/3/29 Satyam <devas...@gmail.com>
El eval es peligroso, en inglés dicen "eval is evil" (eval es malvado).  Impide que los compresores de código actúen, dado que al no saber qué es lo que pueden estar evaluando, no son libres de comprimir nombres de


Ciertamente ese es un meme que ha tenido exito, lo que no implica que sea verdad :)

Ivan Castellanos

unread,
Mar 29, 2012, 4:00:19 PM3/29/12
to javasc...@googlegroups.com
El problema que tiene esa implementacion es que a veces Yahoo retorna "null" en vez del resultado esperado
 
{"query":{"count":0,"created":"2012-03-29T19:51:16Z","lang":"en-US","results":null}}

El otro problema es que es el doble de lento que llamarlo directamente.

 

Y teniendo en cuenta que es tan facil pasar de XML a JSON usando solo javascript.


2012/3/29 Jose Antonio Perez <jose...@gmail.com>

Xavier Romero

unread,
Mar 29, 2012, 5:01:33 PM3/29/12
to javasc...@googlegroups.com
+1 Tienes mucha razón   Ivan Castellanos eso es cierto 

Satyam

unread,
Mar 29, 2012, 5:20:50 PM3/29/12
to javasc...@googlegroups.com
No solo eso, YQL tiene distinto formato de respuesta dependiendo si hay 0, 1 o varios resultados.   Con 0, devuelve un null; con 1, un objeto; con más, un array de objetos.

Eso (ver quirk #3) y otras cosas lo podéis leer  (en inglés) en:

http://www.yuiblog.com/blog/2010/08/09/ask-satyam-yql-and-yui/

Satyam

Xavier Romero

unread,
Mar 29, 2012, 9:57:09 PM3/29/12
to javasc...@googlegroups.com
+1 @satyam

Ivan Castellanos

unread,
Mar 29, 2012, 9:59:44 PM3/29/12
to javasc...@googlegroups.com

x-all-the-things-meme-generator-1-all-the-things-90478a.jpg (510×383) 

2012/3/29 Xavier Romero <o.romer...@gmail.com>
Reply all
Reply to author
Forward
0 new messages