Überprüfen, ob ein Element isset in einen JSON-string entschlüsselt
Arbeite ich an einem Modul, das lädt die Daten von Twitter user_timeline REST-API. Sobald ich die JSON-dekodierten, ich habe eine foreach-Anweisung in mein PHP zu bekommen jede der zurückgegebenen tweets. Ich bin derzeit mit einem Problem-überprüfung für Elemente unter dem retweeted_status Teil des JSON-string. Die JSON-ich rufe ist:
"http://api.twitter.com/1/statuses/user_timeline.json?count=".$count."&include_rts=1&screen_name=".$uname.""
retweeted_status wird nur zurückgegeben, wenn ein tweet, ein retweet. So, zum Beispiel, wenn der tweet ein retweet, ich will wieder die ursprüngliche tweet-text nicht weiterleiten. Ich habe versucht diesen code:
if(isset($t->retweeted_status->text)) {
$tweet = $t->retweeted_status->text;
} else {
$tweet = $t->text;
}
Mithilfe der oben genannten code, wenn retweeted_status NICHT zurückgegeben, isset immer noch gilt für alle Objekte, die nach dem ersten mal das isset wird true zurückgegeben.
Was ich brauche, ist eine bedingte, die in meiner foreach-das wird richtig prüfen Sie, ob Elemente unter retweeted_status (da die retweetet haben Datenpunkt deaktiviert und wurde für einige Zeit) und zurücksetzen des check auf false, wenn retweeted_status ist nicht vorhanden.
Irgendwelche Vorschläge?
- i dont exectly verstehen, was Sie tun wollen, aber ich denke, u sollte der Blick in Richtung putting ein array oder boolian vor der foreach-Schleife und benutzen Sie diese um den status zu speichern, aber wenn Sie es machen mehr klar, was Sie versuchen, maby ich damit mehr helfen kann
- In meinem Modul bin ich versucht zu ziehen Informationen aus der retweeted_status Teil des JSON-string, wenn es vorhanden ist, und wenn es die dann nicht mehr die Informationen, die zurückgegeben wird, von einem anderen Teil des JSON-string.
Du musst angemeldet sein, um einen Kommentar abzugeben.
PHP hat eine ausgezeichnete JSON-Unterstützung gebaut-in, so gibt es keine Notwendigkeit, manuell grokk durch den JSON-string, um herauszufinden, ob oder ob nicht das Objekt, das es repräsentiert eine bestimmte Eigenschaft. Nur tun
mit der zweiten param =
true
wenn der JSON-string stellt ein assoziatives array ist, false, wenn es ein "einfacher" (integer-index) ein. (Findest du in der Twitter-docs zu finden.) Dann wird Ihre Kontrollen sollten etwas wie (ich bin nicht vertraut mit Twitter ' s API-spec...):EDIT:
Diese funktioniert bei mir:
Sollten Sie in der Lage zu bekommen, wo Sie wollen, von dort aus, richtig?