Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Cougo

Leitura de retorno JSON de API do Google

Recommended Posts

Bom Dia,

 

Faço uma requisição a uma API do Google (API Web Service), no qual me retorna uma JSON (Matriz)... Meu problema é ao tentar extrair dados que são Arrays dentro de Arrays... Como os dados do campo "Photos", segue um pedaço do retorno JSON.

{
   "html_attributions" : [],
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : -33.870775,
               "lng" : 151.199025
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/travel_agent-71.png",
         "id" : "21a0b251c9b8392186142c798263e289fe45b4aa",
         "name" : "Rhythmboat Cruises",
         "opening_hours" : {
            "open_now" : true
         },
         "photos" : [
            {
               "height" : 270,
               "html_attributions" : [],
               "photo_reference" : "CnRnAAAAF-LjFR1ZV93eawe1cU_3QNMCNmaGkowY7CnOf-kcNmPhNnPEG9W979jOuJJ1sGr75rhD5hqKzjD8vbMbSsRnq_Ni3ZIGfY6hKWmsOf3qHKJInkm4h55lzvLAXJVc-Rr4kI9O1tmIblblUpg2oqoq8RIQRMQJhFsTr5s9haxQ07EQHxoUO0ICubVFGYfJiMUPor1GnIWb5i8",
               "width" : 519
            }
         ], 

Dados da primeira camada eu consigo trabalhar normalmente com um for();

for($x=0; $x < data.results.length; $x++){                    
   Vname = data.results[$x].name
}

O problema esta na próxima camada de informações:

Vref_foto = data.results[$x].photos[0].photo_reference; ???

Obs.: Utilizo uma requisição AJAX.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se ajuda:

for (i = 0; i < data.results.length; i++) 
{
  Vname = data.results[i].name;
  console.log(Vname);
  for (j = 0; j < data.results[i].photos.length; j++) 
  {
    Vref_foto = data.results[i].photos[j].photo_reference;
    console.log(Vref_foto);
  }
}

Exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se ajuda:

for (i = 0; i < data.results.length; i++) 
{
  Vname = data.results[i].name;
  console.log(Vname);
  for (j = 0; j < data.results[i].photos.length; j++) 
  {
    Vref_foto = data.results[i].photos[j].photo_reference;
    console.log(Vref_foto);
  }
}

Exemplo.

Desculpe wootzor... Mas não funcionou aqui, ele não reconhece o comando: data.results.photos.length como valido, simplesmente não executa no javascript;

 

Você chegou a testar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei tanto quanto possível, dentro do código que mostraste. Vê o link do jsFiddle e acede à consola para veres os valores de referência de cada objecto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.