Mostrar resultado de un web service JSON

Iniciado por lucheano, 28 Septiembre 2015, 19:48 PM

0 Miembros y 1 Visitante están viendo este tema.

lucheano

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 (php) [Seleccionar]

$resultado= file_get_contents("https://api.com/123456");

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.

0roch1

Código (php-brief) [Seleccionar]

echo "Número: ".$resultado['numero']."<br>";
echo "Nombre: ".$resultado['nombre']."<br>";
echo "Apellido: ".$resultado['apellido']."<br>";

lucheano

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

MGGM

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

Código (php) [Seleccionar]

$personData = json_decode(file_get_contents("https://api.com/123456"));
echo $personData["numero"];
// ...

lucheano

No va, me tira error . Está bien lo que hago?
Código (php) [Seleccionar]

<?php
$personData 
json_decode(file_get_contents("https://soa.afip.gob.ar/sr-padron/v2/personas/30564098"));
$longitud count($personData);
//Recorro todos los elementos
for($i=0$i<$longitud$i++)
      {
      
//saco el valor de cada elemento
echo $personData[$i];  //Linea 11
   echo "<br>";
      }
?>



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

lucheano

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

0roch1

Intenta así.

Código (php-brief) [Seleccionar]

        $url = "https://soa.afip.gob.ar/sr-padron/v2/persona/30500010912";
$resultado = @json_decode(file_get_contents($url));
$idPersona = @$resultado->data->idPersona;
$tipoPersona = @$resultado->data->tipoPersona;

echo $idPersona;

MinusFour

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

Código (php) [Seleccionar]

$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 (php) [Seleccionar]

$arr = json_decode($jsonString, true);


Para iterar los elementos del arreglo associativo usas foreach:

Código (php) [Seleccionar]

$arr = json_decode($jsonString, true);
foreach($arr as $campo){
   echo $campo . '<br>';
}


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

Código (php) [Seleccionar]

$jsonString = file_get_contents('https://soa.afip.gob.ar/sr-padron/v2/persona/30500010912');
$arr = json_decode($jsonString, true);
foreach($arr as $campo){
   echo $campo . '<br>';
}

lucheano

#8
Cita de: 0roch1 en 28 Septiembre 2015, 22:12 PM
Intenta así.

Código (php-brief) [Seleccionar]

       $url = "https://soa.afip.gob.ar/sr-padron/v2/persona/30500010912";
$resultado = @json_decode(file_get_contents($url));
$idPersona = @$resultado->data->idPersona;
$tipoPersona = @$resultado->data->tipoPersona;

echo $idPersona;


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

0roch1

Código (php-brief) [Seleccionar]

       $url = "https://soa.afip.gob.ar/sr-padron/v2/personas/30564098";

$resultado = @json_decode(file_get_contents($url));
$data = @$resultado->data[0];

echo $data;


Saludos