2016-08-22 6 views
0

Ich versuche, die RIOT-API zu verwenden, aber ich bin irgendwie fest. hier ist also die Ausgabe der Seite:JSON-Werte in PHP

{ 
"36694730": [{ 
    "name": "Twitch's Marksmen", 
    "tier": "GOLD", 
    "queue": "RANKED_SOLO_5x5", 
    "entries": [{ 
     "playerOrTeamId": "36694730", 
     "playerOrTeamName": "OU2S", 
     "division": "V", 
     "leaguePoints": 0, 
     "wins": 207, 
     "losses": 201, 
     "isHotStreak": false, 
     "isVeteran": false, 
     "isFreshBlood": true, 
     "isInactive": false 
    }] 
}]} 

Was ich tatsächlich versucht habe zu tun:

<?php 
$link = "https://euw.api.pvp.net/api/lol/euw/v2.5/league/by-summoner/36694730/entry?api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
$json = file_get_contents($link); 

$get = json_decode($json, true); 
// echo $get['name']; 
echo $get->name; 

?> 

Sowohl für mich nicht funktioniert, vielen Dank für die Zeit nehmen, diese zu lesen.

+1

irgendwelche grundlegenden Debugging getan, wie 'var_dump ($ json, $ get)' zu sehen, was Sie tatsächlich erhalten? Sie gehen nur davon aus, dass mit diesem Code nichts schiefgehen kann, was genau die falsche Einstellung ist. NIEMALS Erfolg im Umgang mit externen Ressourcen annehmen. Nimm immer Versagen an, überprüfe auf Fehler und behandle den Erfolg als angenehme Überraschung. Selbst wenn dein PHP zu 100% syntaktisch korrekt ist, was ist, wenn das die falsche URL ist? Was ist, wenn diese Site nicht verfügbar ist oder ein Netzwerkfehler zwischen Ihrem Computer und dieser Site vorliegt? –

+0

Ich würde CURL verwenden, um diesen Aufruf auszuführen ... – Eric

+0

Mögliches Duplikat von [Wie extrahiere ich Daten aus JSON mit PHP?] (Http://stackoverflow.com/questions/29308898/how-do-i-extract- data-from-json-with-php) –

Antwort

1

Da Ihr die Daten in ein Array (2. Parameter von json_decode Satz true) entschlüsseln. Ihre dekodiert Array sollte so sein,

Array 
(
    [36694730] => Array 
    (
     [0] => Array 
     (
      [name] => Twitch's Marksmen 
      [tier] => GOLD 
      [queue] => RANKED_SOLO_5x5 
      [entries] => Array 
      (
       [0] => Array 
       (
        [playerOrTeamId] => 36694730 
        [playerOrTeamName] => OU2S 
        [division] => V 
        [leaguePoints] => 0 
        [wins] => 207 
        [losses] => 201 
        [isHotStreak] => 
        [isVeteran] => 
        [isFreshBlood] => 1 
        [isInactive] => 
       ) 
      ) 
     ) 
    ) 
) 

Ihr Code sein sollte: -

echo $get['36694730']['0']['name'];

Hoffnung, das hilft.

+0

Arbeitete wie ein Zauber – user1114748

1

Sie können nicht direkt auf die Eigenschaft zugreifen. Sie müssen nach der Decodierung in das Array gehen.

foreach ($get as $response) { 
    foreach ($response as $element) { 
     echo $element['name']; //Twitch's Marksmen 
    } 
} 
1

Es gibt ein mehrdimensionales Array als Antwort von json_decode. Sie sollten diesen Weg gehen -

$get = json_decode($json, true); 
foreach ($get as $firstElement) { 
    foreach ($firstElement as $secondElement) { 
     echo $secondElement['name']; 
    } 
}