Foros del Web » Programando para Internet » PHP »

Obtener valores de JSON con PHP

Estas en el tema de Obtener valores de JSON con PHP en el foro de PHP en Foros del Web. Buenas a todos, explico: estoy trabajando con bit.ly, un acortador de urls, y quiero hacer un dashboard con los datos, el problema que tengo es ...
  #1 (permalink)  
Antiguo 31/08/2011, 18:57
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 8 meses
Puntos: 41
Obtener valores de JSON con PHP

Buenas a todos, explico: estoy trabajando con bit.ly, un acortador de urls, y quiero hacer un dashboard con los datos, el problema que tengo es con un metodo del API el cual me regresa un objeto JSON, micodigo para obtener el JSON es el siguiente:

Código PHP:
function clicks_by_day($url$days){
            
$temp $this->path."clicks_by_day?login=".$this->user."&apiKey=".$this->key."&shortUrl=".$url."&format=json&days=".$days;
                            
//    "clicks_by_day?login=&apiKey=&format=json&days=7&hash=grqSlY&hash=dYhyia"
            
$data file_get_contents($temp);
            
$json   var_dump(json_decode($datatrue));
            
            return 
$json
y lo que me regresa es lo siguiente: (está un poco largo)

Código PHP:
array(3) {
  [
"status_code"]=>
  
int(200)
  [
"data"]=>
  array(
1) {
    [
"clicks_by_day"]=>
    array(
1) {
      [
0]=>
      array(
4) {
        [
"short_url"]=>
        
string(20"http://bit.ly/r4Vfo9"
        
["global_hash"]=>
        
string(5"Q8f9o"
        
["user_hash"]=>
        
string(6"r4Vfo9"
        
["clicks"]=>
        array(
7) {
          [
0]=>
          array(
2) {
            [
"clicks"]=>
            
int(3)
            [
"day_start"]=>
            
int(1314766800)
          }
          [
1]=>
          array(
2) {
            [
"clicks"]=>
            
int(0)
            [
"day_start"]=>
            
int(1314680400)
          }
          [
2]=>
          array(
2) {
            [
"clicks"]=>
            
int(0)
            [
"day_start"]=>
            
int(1314594000)
          }
          [
3]=>
          array(
2) {
            [
"clicks"]=>
            
int(0)
            [
"day_start"]=>
            
int(1314507600)
          }
          [
4]=>
          array(
2) {
            [
"clicks"]=>
            
int(0)
            [
"day_start"]=>
            
int(1314421200)
          }
          [
5]=>
          array(
2) {
            [
"clicks"]=>
            
int(0)
            [
"day_start"]=>
            
int(1314334800)
          }
          [
6]=>
          array(
2) {
            [
"clicks"]=>
            
int(0)
            [
"day_start"]=>
            
int(1314248400)
          }
        }
      }
    }
  }
  [
"status_txt"]=>
  
string(2"OK"

Lo que quiero sacar son los click por dia, pero no se como accesar a los datos que me trae ese JSON, de antemano gracias.
__________________
Genio es todo aquel que conoce sus cualidades
  #2 (permalink)  
Antiguo 31/08/2011, 19:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Obtener valores de JSON con PHP

Eso no es un json, eso es un array.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 31/08/2011, 19:19
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 8 meses
Puntos: 41
Respuesta: Obtener valores de JSON con PHP

Lo que pasa que ya lo decodifiqué, pero eso es lo que me regresa, y no se como obtener los valores que mencioné anteriormente
__________________
Genio es todo aquel que conoce sus cualidades
  #4 (permalink)  
Antiguo 31/08/2011, 19:45
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Obtener valores de JSON con PHP

Voy a hablar en mi mundo de la ignorancia (que es muy grande).

Que yo sepa la variables $this es para "declarar" objetos y yo en esa función, no veo ningún objeto.

De todas fromas, me da la sensación que la consulta que le haces a la API de bit.ly es erronea según he leído en la misma ([url]http://code.google.com/p/bitly-api/wiki/ApiDocumentation#/v3/clicks_by_day[/url])

Última edición por hasdpk; 31/08/2011 a las 19:47 Razón: Me equivoqué en la URL
  #5 (permalink)  
Antiguo 01/09/2011, 09:43
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 8 meses
Puntos: 41
Respuesta: Obtener valores de JSON con PHP

Cita:
Iniciado por hasdpk Ver Mensaje
Voy a hablar en mi mundo de la ignorancia (que es muy grande).

Que yo sepa la variables $this es para "declarar" objetos y yo en esa función, no veo ningún objeto.

De todas fromas, me da la sensación que la consulta que le haces a la API de bit.ly es erronea según he leído en la misma ([url]http://code.google.com/p/bitly-api/wiki/ApiDocumentation#/v3/clicks_by_day[/url])
Esta función la tengo en una clase, utilizo this ya que instanció la clase y le mando los valores de usuario y password, la cadena de petición de bit.ly es tal y como está en el API, solamente no le mando los hash que me ha funcionado bién en otras funciones para pedir por ejemplo el número de clicks por minuto, los clicks totales, etc. todas me funcionan bien, solamente que en los otros me trae un xml y lo puedo manejar bien, y mi problema es que este solo regresa un JSON y no se como obtener los valores de dicho JSON,aquí dejo la liga de donde se encuentra
__________________
Genio es todo aquel que conoce sus cualidades
  #6 (permalink)  
Antiguo 01/09/2011, 09:48
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Obtener valores de JSON con PHP

Ya sé donde puedes tener el problema, quita el var_dump de $json.
  #7 (permalink)  
Antiguo 01/09/2011, 09:49
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Obtener valores de JSON con PHP

Es un array, accede a el como tal:

Código PHP:
Ver original
  1. $clicksByDay = $json['data']['clicks_by_day'];
  2. foreach($clicksByDay as $click){
  3.     //do something
  4. }

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 01/09/2011, 12:42
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 8 meses
Puntos: 41
Respuesta: Obtener valores de JSON con PHP

Gracias a todos, la función me quedó de la siguiente manera:

Código PHP:
function clicks_by_day($url$days){
            
$temp $this->path."clicks_by_day?login=".$this->user."&apiKey=".$this->key."&shortUrl=".$url."&format=json&days=".$days;
            
$data file_get_contents($temp);
            
$json json_decode($datatrue);
            
$clicksByDay $json['data']['clicks_by_day'][0]['clicks'];
            
$data = array();
            for(
$i 0$i count($clicksByDay); $i++){
                
$data[$clicksByDay[$i]['day_start']] = $clicksByDay[$i]['clicks'];
            }
            return 
$data;
        } 
Igual me regresa un arreglo pero ya con los valores que necesito, los cuales utilizaré con la API de google para hacer graficas google chart, gracias.
__________________
Genio es todo aquel que conoce sus cualidades

Etiquetas: bit.ly, json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:52.