drwindows97
Goto Top

Bestimmmte Werte mit PHP aus JSON Datei filtern ?

Hallo Administratoren,
ich habe folgendes Problem.

Ich greife mittels PHP auf eine Internetseite zu die mir einen JSON Quelltext zurückliefert.
Diesen möchte ich jetzt nach den Werten account_id, account_name und role_i18n durchsuchen und das dahinterstehende ausgeben.
Klingt eigentlich einfach, aber bei mir wird nichts ausgegeben.

Mein Ansatz war bisher folgender:
error_reporting(E_ALL ^  E_NOTICE);
$jsonfile = file_get_contents('http://api.worldoftanks.eu/2.0/clan/info/?application_id=d0a293dc77667c9328783d489c8cef73&clan_id=500030916');  
$jsonarray = json_decode($jsonfile, true);

//...

echo $jsonarray['account_id'];  
echo $jsonarray['account_name'];  
echo $jsonarray['role_i18n'];  

Könnt ihr mir sagen was ich falsch mache ?

Danke für eure Hilfe,

DRwindows97

Content-ID: 221107

Url: https://administrator.de/contentid/221107

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

colinardo
colinardo 04.11.2013, aktualisiert am 05.11.2013 um 11:50:17 Uhr
Goto Top
Hallo DrWindows97,
dein JSON File ist mehrfach in Arrays geschachtelt, d.h du musst bis zum gewünschten Wert "navigieren". Außerdem gibt es deine Werte mehrfach d.h. du müsstest dann die Werte mit einer Schleife durchlaufen, um bestimmte Werte zu finden bzw. auszulesen.
$jsonfile = file_get_contents('http://api.worldoftanks.eu/2.0/clan/info/?application_id=d0a293dc77667c9328783d489c8cef73&clan_id=500030916');  
$jsonarray = json_decode($jsonfile, true);
foreach ($jsonarray['data']['500030916']['members'] as $key=>$value){  
	echo $value['account_id']." , ".$value['account_name']." , ".$value['role_i18n'] . "<br>";	  
}
Die genaue Struktur kannst du dir ja mit var_dump($jsonarray); ausgeben lassen...

Grüße Uwe
nxclass
nxclass 04.11.2013 aktualisiert um 23:24:51 Uhr
Goto Top
... wenn ich mir das Ergebnis der URL anschaue sehe ich ein stark verschachteltes Objekt.
var_dump($jsonarray);
... du solltest anschauen was Du zurückbekommst.
foreach ($jsonarray['data']['500030916']['members'] as $key=>$values) {  
   echo $values['account_id'];  
   // ...
}
...hilfreich ist bei sowas zB auch "Online-Json-Formatierer" wie http://jsonformat.com
DRwindows97
DRwindows97 05.11.2013 um 18:21:01 Uhr
Goto Top
Vielen Dank, ihr beiden mit eurer Hilfe könnte ich nun die Daten in eine Textdatei schreiben, jetzt muss ich nur noch rausfinden wie ich das ganze in meine MYSQL-Benutzerdatenbank importiere.