Ayuda con JSON

kazaf Seguir

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Abr 2009
Mensajes
187
Hola nuevamente Forobeteros :3 ahora vengo a pedir otra vez una pequeña ayuda sobre json.

Aquí dejo el link del json http://stats.lolperu.pe/info.php

En esa información lo que me interesa es:

PHP:
{
    "_": {
        "APP_ID": "server_tracked"
    },
    "success": true,
    "requestTime": "2013-08-20T11:37:12-07:00",
    "shard": "Latin_America_North:ZWZkOGI1NjhhNTVmYTJkNDg0ODNjYzA2ZDIzZmM1MjcxOWEyNTgxOA",
    "data": {
        "accountId": 200087239,
        "summonerId": 104046,
        "name": "wilmerp",
        "icon": 18,
        "internalName": "wilmerp",
        "level": 30
    }

Mi pregunta es ¿como puedo extraer la informacion "data" icon level" en un php?. Para asi poder sacar por partes la información y ponerlo en distintas partes del la estructura html.

Espero que me puedan ayudar. Gracias bendiciones.
 

Tony

1
Ómicron
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
16 Jun 2011
Mensajes
4.801
Algo simple
PHP:
$objeto = json_decode(file_get_contents("http://forobeta.com/json.file"));

echo $objeto->atributo;

Podría haber errores de sintaxis, no probé el código lo hice a memoria (creo que así es como funciona, hace tiempo que no uso php a pie);
 

grails

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
12 Ene 2013
Mensajes
15
Hola kazaf,

Para empezar, tu json no es válido, le falta un "}" al final, puedes comprobar la validez de un formato en JSONLint - The JSON Validator.

Además de esto, te dejo el código para que puedas recuperar data-icon y data-level, como ves es muy sencillo:

PHP:
<?php

$json = '{
    "_": {
        "APP_ID": "server_tracked"
    },
    "success": true,
    "requestTime": "2013-08-20T11:37:12-07:00",
    "shard": "Latin_America_North:ZWZkOGI1NjhhNTVmYTJkNDg0ODNjYzA2ZDIzZmM1MjcxOWEyNTgxOA",
    "data": {
        "accountId": 200087239,
        "summonerId": 104046,
        "name": "wilmerp",
        "icon": 18,
        "internalName": "wilmerp",
        "level": 30
    }
}';

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
?>
 

kazaf

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Abr 2009
Mensajes
187
disculpa mi ignorancia pero lo puse asi:

PHP:
<?php

$objeto = json_decode(file_get_contents("http://stats.lolperu.pe/info.php));

echo $objeto->success;

?>

y me salio esto:

Parse error: syntax error, unexpected $end in /home/wfackiuc/public_html/stats/prueba.php on line 6
 

Tony

1
Ómicron
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
16 Jun 2011
Mensajes
4.801
disculpa mi ignorancia pero lo puse asi:

PHP:
<?php

$objeto = json_decode(file_get_contents("http://stats.lolperu.pe/info.php));

echo $objeto->success;

?>

y me salio esto:

Parse error: syntax error, unexpected $end in /home/wfackiuc/public_html/stats/prueba.php on line 6
Comillas al final de la URL. Te recomiendo hagas un var_dump($objeto); para que sepas que atributos recibes.
 

kazaf

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Abr 2009
Mensajes
187
Hola kazaf,

Para empezar, tu json no es válido, le falta un "}" al final, puedes comprobar la validez de un formato en JSONLint - The JSON Validator.

Además de esto, te dejo el código para que puedas recuperar data-icon y data-level, como ves es muy sencillo:

PHP:
<?php

$json = '{
    "_": {
        "APP_ID": "server_tracked"
    },
    "success": true,
    "requestTime": "2013-08-20T11:37:12-07:00",
    "shard": "Latin_America_North:ZWZkOGI1NjhhNTVmYTJkNDg0ODNjYzA2ZDIzZmM1MjcxOWEyNTgxOA",
    "data": {
        "accountId": 200087239,
        "summonerId": 104046,
        "name": "wilmerp",
        "icon": 18,
        "internalName": "wilmerp",
        "level": 30
    }
}';

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
?>

Gracias es lo que necesitaba :D te pasaste amigo :)

Verdad en ves de poner todo eso tambien serviria asi?

<?php

$json = 'http://stats.lolperu.pe/info.php';

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
?>

eh tratado y no sale
 

grails

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
12 Ene 2013
Mensajes
15
No, debería ser una mezcla con lo que te dijo [MENTION=10463]Tony[/MENTION]

PHP:
<?php

$jd = json_decode(file_get_contents('http://stats.lolperu.pe/info.php'));

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';


?>

El problema es que a veces algunos proveedores de hosting no dejan utilizar la función file_get_contents

Saludos
 

kazaf

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Abr 2009
Mensajes
187
Gracias en verdad me ayudaste mucho. Bendiciones. Y gracias Tony también por date un tiempo en responder mis preguntas.
 
Última edición:

kazaf

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Abr 2009
Mensajes
187
Por cierto tengo una duda como podria agregar un buscador al $username y que en el url aparesca por ejemplo http://localhost/buscar.php?user=nick
creo que asi es?

Espero su ayuda. Bendiciones.
PHP:
<?php
require_once './lib/Unirest.php';
$username = 'onisuka24';
$url = 'localhost/' . $username . '';
$json = Unirest::get($url, array("X-Mashape-Authorization" => "key"));

$json = $json->raw_body; 

print_r($json);

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
echo '<p>Name: ' . $jd->data->name . '</p>';

?>
 
Última edición:

soloparati

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
12 Ago 2013
Mensajes
1.034
Te refieres a esto?
si tu url es este http://localhost/buscar.php?user=nick
entonces tu php con respecto a tu usuario seria..
PHP:
<?php
$username = $_GET['user'];
require_once './lib/Unirest.php';

$url = 'localhost/' . $username . '';
$json = Unirest::get($url, array("X-Mashape-Authorization" => "key"));

$json = $json->raw_body; 

print_r($json);

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
echo '<p>Name: ' . $jd->data->name . '</p>';

?>
Espero te sirva, Saludos y muchas bendiciones de igual manera ..
 

kazaf

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
20 Abr 2009
Mensajes
187
Te refieres a esto?
si tu url es este http://localhost/buscar.php?user=nick
entonces tu php con respecto a tu usuario seria..
PHP:
<?php
$username = $_GET['user'];
require_once './lib/Unirest.php';

$url = 'localhost/' . $username . '';
$json = Unirest::get($url, array("X-Mashape-Authorization" => "key"));

$json = $json->raw_body; 

print_r($json);

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
echo '<p>Name: ' . $jd->data->name . '</p>';

?>
Espero te sirva, Saludos y muchas bendiciones de igual manera ..

Gracias amigo si me ha servido una duda como seria para poder buscar multiples url por ejemplo:

PHP:
<?php
require_once './lib/Unirest.php';
$username = $_GET['user']; 
$url = 'https://localhost/player/lan/' . $username . '';
$url2 = 'https://localhost/player/lan/' . $username . '/influence_points';

$json = Unirest::get($url, array("X-Mashape-Authorization" => "key"));

$json = $json->raw_body; 

print_r($json);

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
echo '<p>Name: ' . $jd->data->name . '</p>';

?>

json del url 2
PHP:
{
    "_": {
        "APP_ID": "server_tracked"
    },
    "success": true,
    "requestTime": "2013-08-23T00:59:09-07:00",
    "shard": "Latin_America_North:NzgwMmE2MGMzYmI2ZWQ5YTRiMWUzNWI3NmVmOTBhMzE2OTUxMmI4ZA",
    "player": {
        "accountId": 200087239,
        "summonerId": 104046,
        "name": "wilmerp",
        "icon": 18,
        "internalName": "wilmerp",
        "level": 30
    },
  [CODE]  "data": 250568[/CODE]
}

Como agregaria ahi el data en el echo?

---------- Post agregado el 23-ago-2013 hora: 23:07 ----------

Alguna respuesta :(

---------- Post agregado el 24-ago-2013 hora: 02:38 ----------

PHP:
<?php

require_once './lib/Unirest.php';

$username = $_GET['user']; 

$lan = 'https://localhost/player/lan/' . $username . '';

$puntos = 'https://localhost/player/lan/' . $username . '/influence_points';

$url = $lan;

$url2 = $puntos;

$json = Unirest::get($url, array("X-Mashape-Authorization" => "key"));

$json2 = Unirest::get($url2, array("X-Mashape-Authorization" => "key"));

$json = $json->raw_body; 

print_r($json);

$jd = json_decode($json);

echo '<p>Icon: ' . $jd->data->icon . '</p>';
echo '<p>Level: ' . $jd->data->level . '</p>';
echo '<p>Name: ' . $jd->data->name . '</p>';

$json2 = $json2->raw_body; 

print_r($json2);

$jd2 = json_decode($json2);
echo '<p>Puntos: ' . $jd2->data . '</p>';

?>

Eh logrado lo que andaba buscando pero tengo una consulta hay una forma de simplificarlo? mas corto? si es asi espero que me puedan ayudar. Bendiciones.
 
Última edición:
Arriba