3

そこで、ユーザーのツイート ストリームを PHP 経由で JSON 形式で取得しています。それを操作できるように、文字列ではなく、連想配列または少なくともより使いやすい方法にデコードしたいと思います。

私はjson_decodeについて狂ったように読んでいますが、私にとっては、それを使用する前と後で、ファイルの内容がまだ1つの長い文字列として検出されているようです。誰かが私が間違っていることを理解するのを手伝ってくれますか?

$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
4

4 に答える 4

7

URL で を使用callbackすると、括弧で囲まれた文字列が返されます( )(文字列の抜粋)。

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

これは有効な JSON ではありません。

がないcallback場合、結果は[ ]有効なものにのみラップされます。

 [{"in_reply_to_user_id":  /* ...more data here...*/ }]
于 2010-01-26T21:26:44.133 に答える
4

&callback=? を捨てる URLで。

于 2010-01-26T21:18:50.470 に答える
3

jQuery ライブラリを使用して JSON を解析することに慣れていたので、&callback=? URL の末尾に .

json_decode() は、データを配列に変換するのに問題はありません。

この理由を知っている人がいれば、ぜひ教えていただきたいです。

要するに、うまくいきます!!

于 2010-01-26T21:18:46.303 に答える
3
   $url = "http://twitter.com/status/user_timeline/" . $username . ".json?count=" . $count;

コールバックを削除して、json が jsonp ではなく json になるようにします。jsonp はデコード時に壊れます

于 2010-01-26T21:20:57.813 に答える