Обработка данных в объекте PHP JSON
Данные о тенденциях из API поиска Twitter в 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
)
85
Author: Peter Bailey, 2008-11-04
4 answers
Вы имеете в виду что-то вроде этого?
<?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";
}
147
Author: Peter Bailey, 2008-11-04 20:59:07
Если вы используете json_decode($string, true)
, вы получите не объекты, а все в виде ассоциативного или числового индексированного массива. Намного проще в обращении, так как stdObject, предоставляемый PHP, - это не что иное, как тупой контейнер с общедоступными свойствами, который нельзя расширить с помощью вашей собственной функциональности.
$array = json_decode($string, true);
echo $array['trends'][0]['name'];
35
Author: Sven, 2010-11-03 12:58:47
Просто используйте его так, как будто это был определенный вами объект. т. Е.
$trends = $json_output->trends;
8
Author: Zak, 2008-11-04 21:03:52
Чистым способом было бы:
$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']);
}
-2
Author: DanAlexson90, 2014-07-31 12:46:06