2013-08-18 106 views
0

Twitter的API響應我使用Twitter的API V.1.1檢索與某些哈希標籤鳴叫/關聯數組。解析JSON從PHP中

$tweets = $connection->get("xxxxxxxxxxxxxxx"); 
$tweets = json_encode($tweets); 

echo '<pre>'; 
    $objJson = json_decode($tweets, TRUE); 
    print_r ($objJson); 
    echo '</pre>'; 
?> 

上面是我用來收集響應的代碼。

這是響應我回去

Array 
(
    [statuses] => Array 
     (
      [0] => Array 
       (
        [metadata] => Array 
         (
          [result_type] => recent 
          [iso_language_code] => en 
         ) 

        [created_at] => Sun Aug 18 16:24:36 +0000 2013 
        [id] => 369132733080936448 
        [id_str] => 369132733080936448 
        [text] => Macy's Almeda, Houston, TX: Retail Commission Sales Associa - http://t.co/iz3YdBBCzC#jobs #Macy's #Houston 
        [source] => Best Jobs Online 
        [truncated] => 
        [in_reply_to_status_id] => 
        [in_reply_to_status_id_str] => 
        [in_reply_to_user_id] => 
        [in_reply_to_user_id_str] => 
        [in_reply_to_screen_name] => 
        [user] => Array 
         (
          [id] => 237507695 
          [id_str] => 237507695 
          [name] => Best Jobs 
          [screen_name] => bestjobsonline 
          [location] => 
          [description] => Best Jobs Online - we search the web for the best internships and jobs for you. No need to search yourself! Follow our stream and boost your career! 
          [url] => http://t.co/SkmHCpOnzM 
          [entities] => Array 
           (
            [url] => Array 
             (
              [urls] => Array 
               (
                [0] => Array 
                 (
                  [url] => http://t.co/SkmHCpOnzM 
                  [expanded_url] => http://www.internships2013.com 
                  [display_url] => internships2013.com 
                  [indices] => Array 
                   (
                    [0] => 0 
                    [1] => 22 
                   ) 

                 ) 

               ) 

             ) 

            [description] => Array 
             (
              [urls] => Array 
               (
               ) 

             ) 

           ) 

          [protected] => 
          [followers_count] => 6172 
          [friends_count] => 13 
          [listed_count] => 240 
          [created_at] => Thu Jan 13 00:36:32 +0000 2011 
          [favourites_count] => 0 
          [utc_offset] => -18000 
          [time_zone] => Central Time (US & Canada) 
          [geo_enabled] => 
          [verified] => 
          [statuses_count] => 847813 
          [lang] => en 
          [contributors_enabled] => 
          [is_translator] => 
          [profile_background_color] => 022330 
          [profile_background_image_url] => http://a0.twimg.com/images/themes/theme15/bg.png 
          [profile_background_image_url_https] => https://si0.twimg.com/images/themes/theme15/bg.png 
          [profile_background_tile] => 
          [profile_image_url] => http://a0.twimg.com/profile_images/1214148827/bjo_logo_normal.png 
          [profile_image_url_https] => https://si0.twimg.com/profile_images/1214148827/bjo_logo_normal.png 
          [profile_link_color] => 0084B4 
          [profile_sidebar_border_color] => A8C7F7 
          [profile_sidebar_fill_color] => C0DFEC 
          [profile_text_color] => 333333 
          [profile_use_background_image] => 1 
          [default_profile] => 
          [default_profile_image] => 
          [following] => 
          [follow_request_sent] => 
          [notifications] => 
         ) 

        [geo] => 
        [coordinates] => 
        [place] => 
        [contributors] => 
        [retweet_count] => 0 
        [favorite_count] => 0 
        [entities] => Array 
         (
          [hashtags] => Array 
           (
            [0] => Array 
             (
              [text] => jobs 
              [indices] => Array 
               (
                [0] => 86 
                [1] => 91 
               ) 

             ) 

            [1] => Array 
             (
              [text] => Macy 
              [indices] => Array 
               (
                [0] => 92 
                [1] => 97 
               ) 

             ) 

            [2] => Array 
             (
              [text] => Houston 
              [indices] => Array 
               (
                [0] => 100 
                [1] => 108 
               ) 

             ) 

           ) 

          [symbols] => Array 
           (
           ) 

          [urls] => Array 
           (
            [0] => Array 
             (
              [url] => http://t.co/iz3YdBBCzC 
              [expanded_url] => http://bit.ly/16UtroW 
              [display_url] => bit.ly/16UtroW 
              [indices] => Array 
               (
                [0] => 63 
                [1] => 85 
               ) 

             ) 

           ) 

          [user_mentions] => Array 
           (
           ) 

         ) 

        [favorited] => 
        [retweeted] => 
        [possibly_sensitive] => 
        [lang] => en 
       ) 

我如何格式化這種反應只告訴我這些推文的日期和文字。謝謝您的幫助。我是一個noob,任何幫助都會派上用場!

回答

1

這個循環遍歷您的狀態,並增加了created_at和文本的值到一個新的數組。

$data = array(); 
foreach($objJson["statuses"] as $status) { 
    $data[] = array(
     "created_at" => $status["created_at"], 
     "text" => $status["text"] 
    ); 
} 
echo "<pre>" . print_r($data,1) . "</pre>"; 
+0

您好, 感謝您的幫助。我嘗試了你的代碼,現在得到這些錯誤消息:「嘗試獲取非對象的屬性」&「爲foreach()提供的無效參數」 這是我目前的代碼: '$ tweets = $ connection-> get ( 「https://api.twitter.com/1.1/search/tweets.json?q=%23macy」); $ tweets = json_encode($ tweets); $ obJson = json_decode($ tweets,TRUE); $ data = array(); foreach($ objson-> status as $ status){ $ data [] = array( 「created_at」=> $ status-> createdAt, 「text」=> $ status-> text ); } echo「

" . print_r($data,1) . "
」;' – user2694239

+0

前段時間我改變了我的代碼,因爲我第一次沒有在你的json_decode中看到TRUE,這意味着你不想要一個對象,而是一個關聯數組。所以嘗試更新的代碼! –