Ayuda con JSON

  • Autor Autor kazaf
  • Fecha de inicio Fecha de inicio
kazaf

kazaf

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
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.
 
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);
 
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>';
?>
 
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
 
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.
 
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 😀 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
 
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
 
Gracias en verdad me ayudaste mucho. Bendiciones. Y gracias Tony también por date un tiempo en responder mis preguntas.
 
Última edición:
Por cierto tengo una duda como podria agregar un buscador al $username y que en el url aparesca por ejemplo
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 por un moderador:
Te refieres a esto?
si tu url es este
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 ..
 
Última edición por un moderador:
Te refieres a esto?

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 por un moderador:

Temas similares

Atrás
Arriba