kostenloser Webspace werbefrei: lima-city


Problem beim auslesen eines json feed

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    wuestenkrieger-frostwolf

    wuestenkrieger-frostwolf hat kostenlosen Webspace.

    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 =)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    wuestenkrieger-frostwolf

    wuestenkrieger-frostwolf hat kostenlosen Webspace.

    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
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!