← Desenvolvimento

API JSON

Lida 5772 vezes

Offline

Thomato 
Membro
Mensagens 4125 Gostos 3
Feedback +2

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

Estou a utilizar APIs JSON pela primeira vez. Já consegui colocar uma das APIs que necessito a funcionar, no entanto tenho um problema noutra.

Tentei indicar o caminho assim: rows[0]->elements[0]->distance->text, pois parecia-me ser a estrutura da API.
Entretanto, por não funcionar, abri a API num leitor JSON e percebi que existem uns "0" no meio do caminho. Tentei indicar esses "0", mas a função deixou de funcionar.

Podem ver ao que me refiro nesta imagem:


Alguém faz ideia de como posso ultrapassar isto?

Obrigado!
Offline

ricardomoreira 
Membro
Mensagens 69 Gostos 0
Troféus totais: 19
Trófeus: (Ver todos)
Windows User Apple User Super Combination Combination Topic Starter Level 3 Level 2 Level 1 50 Posts 10 Posts

Isso não é do Google Maps? O JSON deles não tem qualquer zero, deve ser bug da aplicação que estás a usar.
Offline

Thomato 
Membro
Mensagens 4125 Gostos 3
Feedback +2

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

Isso não é do Google Maps? O JSON deles não tem qualquer zero, deve ser bug da aplicação que estás a usar.
Sim, é uma API de distâncias do Google Maps. Sem indicar zeros a função continua a não correr.
O caminho é rows[0]->elements[0]->distance->text, certo?
Offline

ricardomoreira 
Membro
Mensagens 69 Gostos 0
Troféus totais: 19
Trófeus: (Ver todos)
Windows User Apple User Super Combination Combination Topic Starter Level 3 Level 2 Level 1 50 Posts 10 Posts

O text é uma key do distance.
Offline

Thomato 
Membro
Mensagens 4125 Gostos 3
Feedback +2

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

O text é uma key do distance.
Certo e é essa key que eu quero que a função devolva.

Estou a utilizar esta função, que não me está a devolver nada.
Código: [Seleccione]
$q = "url_da_api";
$json = file_get_contents($q);
$details = json_decode($json);
   
$distance = $details->rows[0]->elements[0]->distance->text;
echo $distance;
Offline

kandalf 
Membro
Mensagens 345 Gostos 15
Troféus totais: 28
Trófeus: (Ver todos)
Mobile User Apple User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3

Isso está mesmo a dar-te um objecto? Já tentaste ir fazendo echo a várias coisas tipo:

Código: [Seleccione]
echo $details->rows[0]
Possivelmente o echo não funciona usa print_r().

Olha mas antes tenta json_decode($json, true); e trata tudo como um array tipo rows[0]['elements']['distance']['teste']
Offline

Thomato 
Membro
Mensagens 4125 Gostos 3
Feedback +2

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

Isso está mesmo a dar-te um objecto? Já tentaste ir fazendo echo a várias coisas tipo:

Código: [Seleccione]
echo $details->rows[0]
Possivelmente o echo não funciona usa print_r().

Olha mas antes tenta json_decode($json, true); e trata tudo como um array tipo rows[0]['elements']['distance']['teste']
Nenhum echo me devolve resultado. Mas a função funciona, porque estou a utilizá-la com outras APIs.
Esta API do Google Maps é que tem os tais zeros pelo meio e deixa de devolver resultados.