2011-01-13 3 views
0

Ich arbeite an einem Nebenprojekt und muss im Kern einen viereckigen json-Feed in ein Array einfügen, das ich durchlaufen kann. Mein Code ist unten und führt zu dem folgenden Fehler:Fehler beim Durchlauf durch ein Array, das aus einem viereckigen JSON-Feed erstellt wurde

Warning: Invalid argument supplied for foreach() in /homepages/7/d346835943/htdocs/dealrub/results.php on line 56 

Hier ist ein Beispiel für den json-Feed, den ich mir richtig Erwerb bin:

$jsonurl = "http://api.foursquare.com/v2/venues/search?ll=".$lat.",".$lon."&limit=100"; 
$json = file_get_contents($jsonurl,0,null,null); 
$json_output = json_encode($json, true); 

foreach ($json_output->response->groups[0]->items as $items) 
{ 
    echo "{$items->name}\n"; 
} 

Jede Hilfe, was ich falsch mache würde sehr geschätzt werden. Ich habe die Jsonurl ohne meinen API-Schlüssel verlassen, aber es gibt die JSON-Ergebnisse erfolgreich zurück.

Antwort

0
  1. Sie müssen json_decode verwenden.
  2. Überprüfen Sie, ob $json_ouput nicht leer ist.
  3. Sie übergeben true als zweites Argument an json_decode (vorausgesetzt, Sie haben es richtig) was bedeutet, dass es ein assoziatives Array zurückgibt.

    Entweder weglassen, dass:

    $json_output = json_decode($json); 
    

    oder Zugang items als Array:

    foreach ($json_output['response']['groups'][0]['items'] as $items) 
    
+0

Ah so einen dummen Fehler meinerseits. Gute Antwort. – jethomas

0

Sie verwenden json_encode für eine Zeichenfolge, die sich bereits in json befindet. Versuchen Sie stattdessen json_decode;)

Verwandte Themen