Problem beim auslesen eines json feed
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktuell code
argument
art
ausgabe
auslese
code
eindimensionalen rank array
emblem
ergebnis
erkannt problem
fehler
http
kleines probleme
level
ordern
rache
record
test
testen
url
-
Hi, ich hab da ein kleines Probleme beim auslesen von folgendem json feed den ich nicht ganz nachvollziehen kann.
$json = '{"lastModified":1410861020000,"name":"Wüstenkrieger","realm":"Frostwolf","battlegroup":"Vengeance / Rache","level":25,"side":1,"achievementPoints":1420,"members": [{"character":{ "name":"Nutzelfutz", "realm":"Frostwolf", "battlegroup":"Vengeance / Rache", "class":9, "race":5, "gender":0, "level":73, "achievementPoints":12120, "thumbnail":"internal-record-3703/146/79416978-avatar.jpg", "spec":{"name":"Demonology","role":"DPS","backgroundImage":"bg-warlock-demonology","icon":"spell_shadow_metamorphosis","description":"A master of demonic magic who transforms into a demon and compels demonic powers to aid him.","order":1}, "guild":"Wüstenkrieger","guildRealm":"Frostwolf"}, "rank":5}], "emblem":{"icon":6,"iconColor":"ff670021","border":1,"borderColor":"ffffffff","backgroundColor":"ff232323"}}';
Mein Code zum auslesen lautet aktuell:
$jsonArray = json_decode($json, true); if (array_key_exists('members', $jsonArray)) { echo 'Folgende Member sind vorhanden:</br>'; foreach($jsonArray['members'] as $character) { foreach($character as $informations) { foreach($informations as $key => $value) // << Zeile 27 { if(is_array($value)) { foreach($value as $subkey => $subvalue) // test { echo $subkey . ' : ' . $subvalue . '<br />'; } } else{ echo $key . ' : ' . $value . '<br />'; } } } } }
Beim testen auf http://writecodeonline.com/php/ Bekomme ich aber nicht ganz das gewünschte Ergebnis.
Da ich anstelle der Ausgabe 'rank:5' einen fehler bekomme (Warning: Invalid argument supplied for foreach() on line 27).
HIIILLFFEEE bitte =)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
wuestenkrieger-frostwolf schrieb:
Hi, ich hab da ein kleines Probleme beim auslesen von folgendem json feed den ich nicht ganz nachvollziehen kann.
$json = '{"lastModified":1410861020000,"name":"Wüstenkrieger","realm":"Frostwolf","battlegroup":"Vengeance / Rache","level":25,"side":1,"achievementPoints":1420,"members": [{"character":{ "name":"Nutzelfutz", "realm":"Frostwolf", "battlegroup":"Vengeance / Rache", "class":9, "race":5, "gender":0, "level":73, "achievementPoints":12120, "thumbnail":"internal-record-3703/146/79416978-avatar.jpg", "spec":{"name":"Demonology","role":"DPS","backgroundImage":"bg-warlock-demonology","icon":"spell_shadow_metamorphosis","description":"A master of demonic magic who transforms into a demon and compels demonic powers to aid him.","order":1}, "guild":"Wüstenkrieger","guildRealm":"Frostwolf"}, "rank":5}], "emblem":{"icon":6,"iconColor":"ff670021","border":1,"borderColor":"ffffffff","backgroundColor":"ff232323"}}';
Mein Code zum auslesen lautet aktuell:
$jsonArray = json_decode($json, true); if (array_key_exists('members', $jsonArray)) { echo 'Folgende Member sind vorhanden:</br>'; foreach($jsonArray['members'] as $character) { foreach($character as $informations) { foreach($informations as $key => $value) // << Zeile 27 { if(is_array($value)) { foreach($value as $subkey => $subvalue) // test { echo $subkey . ' : ' . $subvalue . '<br />'; } } else{ echo $key . ' : ' . $value . '<br />'; } } } } }
Beim testen auf http://writecodeonline.com/php/ Bekomme ich aber nicht ganz das gewünschte Ergebnis.
Da ich anstelle der Ausgabe 'rank:5' einen fehler bekomme (Warning: Invalid argument supplied for foreach() on line 27).
HIIILLFFEEE bitte =)
Eine ähnliche Frage hatte ich schon einmal. https://www.lima-city.de/thread/json-in-liste-anzeigen-dynamisch-laden
Lg
Beitrag zuletzt geändert: 16.9.2014 14:51:32 von mczernin -
Besten dank aber die Suchfunktion habe ich auch gefunden trotzdem besten dank um dein bemühen. Jedoch habe ich in keinem Beitrag beim überfliegen ein gewünschtes Ergebnis gefunden.
Entwerder geht es um irgendwelche Sonderfuntionen beim auslesen oder um das wie ausgelesen wird.
Ich suche aber weder das eine noch das andere sondern warum meine Art des auslesens im grunde Funktioniert nur die letzte Position ausgelassen wird und ein Fehler ausgibt
Lg
------------------------------ Edit -----------------------------------------
Problem erkannt, Problem gebannt habe ein '}' in dem json feed übersehen,
somit besteht ein Member zum einen aus dem Mehrdimensionalem charakter array
und aus einem eindimensionalen 'rank' array.
Der Fehler entstand somit beim versuch in einem Eindimensionalen Array weiter auffächern zu wollen.
Die Lösung sieht nun wie Folgt aus:
$jsonArray = json_decode($json, true); if (array_key_exists('members', $jsonArray)) { echo 'Folgende Member sind vorhanden:</br>'; foreach($jsonArray['members'] as $character) { echo '<br/>'; foreach($character as $informations) { if(is_array($informations)) { foreach($informations as $key => $value) { if(is_array($value)) { foreach($value as $subkey => $subvalue) // test { echo $subkey . ' : ' . $subvalue . '<br />'; } } else { echo $key . ' : ' . $value . '<br />'; } } } else { foreach($character as $key => $value) { echo $key . ' : ' . $value . '<br />'; } } } } }
Beitrag zuletzt geändert: 16.9.2014 15:53:46 von wuestenkrieger-frostwolf -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage