3 Stimmen

Dekodierung eines JSON-Feeds über PHP von Twitter funktioniert nicht?

Ich rufe also die Tweets eines Benutzers im JSON-Format über PHP ab. Ich möchte es in ein assoziatives Array oder zumindest einige mehr brauchbare Art und Weise statt einer Zeichenfolge zu dekodieren, so dass ich durch sie manövrieren kann.

Ich habe gelesen, wie verrückt über json_decode, aber für mich scheint es wie, wenn ich es verwenden, vor und nach, der Inhalt der Datei ist immer noch als eine lange Zeichenfolge erkannt werden. Kann mir jemand helfen, herauszufinden, was ich falsch mache?

$url = "http://twitter.com/status/user_timeline/" . $username . ".json?count=" . $count . "&callback=?";    

// $url becomes "http://twitter.com/status/user_timeline/steph_Rose.json?count=5&callback=?";   
        $contents = file_get_contents($url);
        $results = json_decode($contents, true);

        echo "<pre>";
        print_r($results);
        echo "</pre>";

        echo gettype($results); // this returns string

7voto

Felix Kling Punkte 751464

Mit callback in der URL eingeben, erhalten Sie eine Zeichenfolge zurück, die in Klammern eingeschlossen ist ( ) (Auszug aus der Zeichenkette):

([{"in_reply_to_user_id":  /* ...more data here...*/ }]);

Dies ist kein gültiges JSON.

Ohne callback wird das Ergebnis nur in [ ] die gültig ist:

 [{"in_reply_to_user_id":  /* ...more data here...*/ }]

4voto

goat Punkte 30238

Lassen Sie das &callback=? in der Url weg.

3voto

Steph Rose Punkte 2106

Ich war es gewohnt, JSON mit der jQuery-Bibliothek zu parsen, also hatte ich das &callback=? am Ende der URL.

Es scheint, dass json_decode() kein Problem damit hat, die Daten in ein Array zu konvertieren, wenn ich dies ausschalte.

Wenn jemand weiß, woran das liegt, würde ich das gerne wissen.

Lange Rede, kurzer Sinn: Es funktioniert!!

3voto

antpaw Punkte 14474
   $url = "http://twitter.com/status/user_timeline/" . $username . ".json?count=" . $count;

Entfernen Sie den Callback, so dass Ihr json json und nicht jsonp ist, jsonp bricht beim Dekodieren ab

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X