elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Mostrar resultado de un web service JSON
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar resultado de un web service JSON  (Leído 5,573 veces)
lucheano

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Mostrar resultado de un web service JSON
« en: 28 Septiembre 2015, 19:48 pm »

Hola que tal.
Resulta que hay una API tipo REST para que pueda obtener datos a partir de una consulta.
El problema es que no se como mostrar con PHP ese array que me da como resultado.
El resultado que me da esa api es de este tipo:

{"success":true, "numero":[123456],"nombre":[Juan], "apellido":[Garcia]}

Para obtener ese resultado hago esto:
Código
  1. $resultado= file_get_contents("https://api.com/123456");
  2.  
Me faltaria un codigo para mostrar ese resultado de manera ordenada por ejemplo:
Número: 123456
Nombre: Juan
Apellido: Garcia

Espero que se haya entendido y que me puedan ayudar.


« Última modificación: 28 Septiembre 2015, 21:35 pm por lucheano » En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: Mostrar resultado de un web service
« Respuesta #1 en: 28 Septiembre 2015, 20:16 pm »

Código
  1. echo "Número: ".$resultado['numero']."<br>";
  2. echo "Nombre: ".$resultado['nombre']."<br>";
  3. echo "Apellido: ".$resultado['apellido']."<br>";
  4.  


En línea

lucheano

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Mostrar resultado de un web service
« Respuesta #2 en: 28 Septiembre 2015, 20:33 pm »

No me funcionó.
Lo explico mejor, necesito mostrar con php de manera mas grafica lo que está aqui:
https://soa.afip.gob.ar/sr-padron/v2/personas/30564098
Gracias
En línea

MGGM

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Mostrar resultado de un web service
« Respuesta #3 en: 28 Septiembre 2015, 20:49 pm »

El WS te devuelve un JSON, trata de convertirlo a un array:

Código
  1. $personData = json_decode(file_get_contents("https://api.com/123456"));
  2. echo $personData["numero"];
  3. // ...
  4.  
En línea

lucheano

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Mostrar resultado de un web service
« Respuesta #4 en: 28 Septiembre 2015, 21:11 pm »

No va, me tira error . Está bien lo que hago?
Código
  1. <?php
  2. $personData = json_decode(file_get_contents("https://soa.afip.gob.ar/sr-padron/v2/personas/30564098"));
  3. $longitud = count($personData);
  4. //Recorro todos los elementos
  5. for($i=0; $i<$longitud; $i++)
  6.      {
  7.      //saco el valor de cada elemento
  8. echo $personData[$i];  //Linea 11
  9.   echo "<br>";
  10.      }
  11. ?>
  12.  

Fatal error: Cannot use object of type stdClass as array in /www/XXXX/htdocs/cuit.php on line 11
En línea

lucheano

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Mostrar resultado de un web service JSON
« Respuesta #5 en: 28 Septiembre 2015, 21:39 pm »

Por las dudas, cuando hago un var_dump($personData); me dale esto:
object(stdClass)#1 (2) { ["success"]=> bool(true) ["data"]=> array(1) {
  • => int(20264216487) } }
En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: Mostrar resultado de un web service JSON
« Respuesta #6 en: 28 Septiembre 2015, 22:12 pm »

Intenta así.

Código
  1.        $url = "https://soa.afip.gob.ar/sr-padron/v2/persona/30500010912";
  2. $resultado = @json_decode(file_get_contents($url));
  3. $idPersona = @$resultado->data->idPersona;
  4. $tipoPersona = @$resultado->data->tipoPersona;
  5.  
  6. echo $idPersona;
  7.  
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Mostrar resultado de un web service JSON
« Respuesta #7 en: 28 Septiembre 2015, 22:19 pm »

El string esta en formato JSON, lo conviertes a un objecto en PHP con:

Código
  1. $obj = json_decode($jsonString);

Para acceder a las propiedades del objeto usas '->'. Si necesitas un arreglo associativo necesitas pasar true en el segundo parametro:

Código
  1. $arr = json_decode($jsonString, true);

Para iterar los elementos del arreglo associativo usas foreach:

Código
  1. $arr = json_decode($jsonString, true);
  2. foreach($arr as $campo){
  3.   echo $campo . '<br>';
  4. }

Puedes usar cURL o fopen (file_get_contents) para cargar el documento:

Código
  1. $jsonString = file_get_contents('https://soa.afip.gob.ar/sr-padron/v2/persona/30500010912');
  2. $arr = json_decode($jsonString, true);
  3. foreach($arr as $campo){
  4.   echo $campo . '<br>';
  5. }
En línea

lucheano

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Mostrar resultado de un web service JSON
« Respuesta #8 en: 28 Septiembre 2015, 22:44 pm »

Intenta así.

Código
  1.        $url = "https://soa.afip.gob.ar/sr-padron/v2/persona/30500010912";
  2. $resultado = @json_decode(file_get_contents($url));
  3. $idPersona = @$resultado->data->idPersona;
  4. $tipoPersona = @$resultado->data->tipoPersona;
  5.  
  6. echo $idPersona;
  7.  

No me funcionó, la url no era esa, es esta: https://soa.afip.gob.ar/sr-padron/v2/personas/30564098

Necesito extraer solo el numero que está entre corchetes de este JSON:
{"success":true,"data":[27305640986]}

Me tendria que dar de resultado esto: 27305640986
« Última modificación: 28 Septiembre 2015, 23:26 pm por lucheano » En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: Mostrar resultado de un web service JSON
« Respuesta #9 en: 28 Septiembre 2015, 23:56 pm »

Código
  1.       $url = "https://soa.afip.gob.ar/sr-padron/v2/personas/30564098";
  2.  
  3. $resultado = @json_decode(file_get_contents($url));
  4. $data = @$resultado->data[0];
  5.  
  6. echo $data;
  7.  

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines