2008-11-04 43 views
85

Dữ liệu xu hướng từ API tìm kiếm Twitter bằng JSON.Xử lý dữ liệu trong đối tượng JSON PHP

Nắm lấy các tập tin sử dụng:

$jsonurl = "http://search.twitter.com/trends.json"; 
$json = file_get_contents($jsonurl,0,null,null); 
$json_output = json_decode($json); 

Làm thế nào để làm việc với dữ liệu từ đối tượng này. Là một mảng? Chỉ thực sự cần trích xuất dữ liệu từ các giá trị [name].

JSON đối tượng bao gồm:

stdClass Object 
(
    [trends] => Array 
     (
      [0] => stdClass Object 
       (
        [name] => Vote 
        [url] => http://search.twitter.com/search?q=Vote 
       ) 

      [1] => stdClass Object 
       (
        [name] => Halloween 
        [url] => http://search.twitter.com/search?q=Halloween 
       ) 

      [2] => stdClass Object 
       (
        [name] => Starbucks 
        [url] => http://search.twitter.com/search?q=Starbucks 
       ) 

      [3] => stdClass Object 
       (
        [name] => #flylady 
        [url] => http://search.twitter.com/search?q=%23flylady 
       ) 

      [4] => stdClass Object 
       (
        [name] => #votereport 
        [url] => http://search.twitter.com/search?q=%23votereport 
       ) 

      [5] => stdClass Object 
       (
        [name] => Election Day 
        [url] => http://search.twitter.com/search?q=%22Election+Day%22 
       ) 

      [6] => stdClass Object 
       (
        [name] => #PubCon 
        [url] => http://search.twitter.com/search?q=%23PubCon 
       ) 

      [7] => stdClass Object 
       (
        [name] => #defrag08 
        [url] => http://search.twitter.com/search?q=%23defrag08 
       ) 

      [8] => stdClass Object 
       (
        [name] => Melbourne Cup 
        [url] => http://search.twitter.com/search?q=%22Melbourne+Cup%22 
       ) 

      [9] => stdClass Object 
       (
        [name] => Cheney 
        [url] => http://search.twitter.com/search?q=Cheney 
       ) 

     ) 

    [as_of] => Mon, 03 Nov 2008 21:49:36 +0000 
) 

Trả lời

147

Bạn có nghĩa là một cái gì đó như thế này?

<?php 

$jsonurl = "http://search.twitter.com/trends.json"; 
$json = file_get_contents($jsonurl,0,null,null); 
$json_output = json_decode($json); 

foreach ($json_output->trends as $trend) 
{ 
    echo "{$trend->name}\n"; 
} 
+0

này là rất tốt. Cảm ơn. –

+18

điểm đại diện dễ dàng, huh? =) – Seiti

+3

chính xác những gì tôi cần! cảm ơn! –

8

Chỉ cần sử dụng nó giống như đối tượng bạn đã xác định. tức là

$trends = $json_output->trends; 
35

Nếu bạn sử dụng json_decode($string, true), bạn sẽ không có đối tượng, nhưng mọi thứ như mảng được lập chỉ mục hoặc số được lập chỉ mục. Cách dễ dàng hơn để xử lý, vì stdObject do PHP cung cấp không là gì ngoài một vùng chứa câm với các thuộc tính công khai, không thể mở rộng bằng chức năng của riêng bạn.

$array = json_decode($string, true); 

echo $array['trends'][0]['name']; 
-2

Cách sạch sẽ là:

$jsonurl = 'http://search.twitter.com/trends.json'; 
$json = file_get_contents($jsonurl, 0, null, null); 
$json_output = json_decode($json, true); 
$trends = $json_output['trends']; 

foreach ($trends as $trend) { 
    your_func($trend['name']); 
} 
Các vấn đề liên quan