Тренды данных из Twitter API поиска в JSON.
Схватив файл, используя:
$jsonurl = "http://search.twitter.com/trends.json"; $json = file_get_contents($jsonurl,0,null,null); $json_output = json_decode($json);
Как работать с данными этого объекта. Как массив? Только действительно необходимо извлечь данные из значений [name].
Объект JSON содержит:
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 )
Вы имеете в виду что-то вроде этого?
<?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"; }
Если вы используете json_decode($string, true)
, вы не получите никаких объектов, а все как ассоциативный или числовой индексный массив. Путь проще в обращении, поскольку stdObject, предоставляемый PHP, представляет собой не что иное, как немой контейнер с общедоступными свойствами, который не может быть расширен с помощью вашей собственной функциональности.
$array = json_decode($string, true); echo $array['trends'][0]['name'];
Просто используйте его, как будто это был объект, который вы определили. т.е.
$trends = $json_output->trends;
Чистым способом было бы:
$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']); }