Ajuda com JSON

  • Autor Autor kazaf
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
kazaf

kazaf

Gamma
Usuário com poucas negociações! Use sempre o saldo do 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.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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 edição:
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 edição por um 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 edição por um 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 edição por um moderador:

Tópicos similares

Voltar
Topo