Foros del Web » Programando para Internet » PHP »

problema con obtener datos de un json

Estas en el tema de problema con obtener datos de un json en el foro de PHP en Foros del Web. Hola tengo un problema al obtener datos de un json este es mi codigo: <?php $url = 'http://www.clicmart.com/iphone/ofertas-usr.php?usr=1'; $json = file_get_contents($url); $data = json_decode($json, true); ...
  #1 (permalink)  
Antiguo 22/03/2012, 15:03
 
Fecha de Ingreso: marzo-2011
Mensajes: 51
Antigüedad: 13 años
Puntos: 2
problema con obtener datos de un json

Hola

tengo un problema al obtener datos de un json

este es mi codigo:

<?php
$url = 'http://www.clicmart.com/iphone/ofertas-usr.php?usr=1';
$json = file_get_contents($url);

$data = json_decode($json, true);

print_r($data->{'nombreprod'}->{"precio"});
?>

pero me arroja este error:

Notice: Trying to get property of non-object in /opt/lampp/htdocs/caja/index.php on line 145

Si alguien me pueda ayudar, gracias

saludos
  #2 (permalink)  
Antiguo 22/03/2012, 15:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: problema con obtener datos de un json

al colocar el true al json_decode, éste queda como un arreglo asociativo, no como objeto, por lo cual se accedería así:
$data['nombreprod']['precio']
  #3 (permalink)  
Antiguo 22/03/2012, 15:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 51
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con obtener datos de un json

Ahora me arroja este error

Notice: Undefined index: nombreprod in /opt/lampp/htdocs/caja/index.php on line 145
  #4 (permalink)  
Antiguo 22/03/2012, 15:12
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: problema con obtener datos de un json

exacto..

checa:

Código PHP:
Ver original
  1. $url = 'http://www.clicmart.com/iphone/ofertas-usr.php?usr=1';
  2. $json = file_get_contents($url);
  3. $data = json_decode($json, true);
  4. //var_dump($data);
  5. echo $data[1]["nombreprod"];
  #5 (permalink)  
Antiguo 22/03/2012, 15:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 51
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con obtener datos de un json

sip, ahora me devolvio el valor

Muchas Gracias
  #6 (permalink)  
Antiguo 22/03/2012, 15:16
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: problema con obtener datos de un json

Bueno, eso es por que no existe el índice nombreprod así como se indica.

Para saber el contenido de lo que obtienes en el j_son, realiza el var_dump:

var_dump($data);

Y con eso verás la estructura de lo que recibes y sabrás como accederla.
  #7 (permalink)  
Antiguo 22/03/2012, 15:24
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: problema con obtener datos de un json

hola

me causo curiosidad el parametro de true que le pasas al json_decode y encontre que cuando lo dejas en true es para recorrerlo como array asociativo pero cuando esta false como objeto

pruebalo:

Código PHP:
Ver original
  1. $url = 'http://www.clicmart.com/iphone/ofertas-usr.php?usr=1';
  2. $json = file_get_contents($url);
  3. $data = json_decode($json, false);
  4. //var_dump($data);
  5. echo $data[1]->nombreprod;
  6. die();
  #8 (permalink)  
Antiguo 22/03/2012, 15:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 51
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con obtener datos de un json

y toda esta informacion se puede almacenar en una base de datos??

solo el "nombreprod" y "precio"
  #9 (permalink)  
Antiguo 22/03/2012, 15:35
 
Fecha de Ingreso: marzo-2011
Mensajes: 51
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con obtener datos de un json

Si tambien lo probe asi, gracias

Etiquetas: 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 04:55.