处理 PHP JSON 对象中的数据
Posted
技术标签:
【中文标题】处理 PHP JSON 对象中的数据【英文标题】:Handling data in a PHP JSON Object 【发布时间】:2010-09-20 18:35:07 【问题描述】:来自 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
)
【问题讨论】:
【参考方案1】:你的意思是这样的?
<?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";
【讨论】:
有没有其他方法可以在不循环的情况下获取名称列表,例如 $trends["name"] 或 $trends[]["name"] ?【参考方案2】:如果您使用json_decode($string, true)
,您将不会获得任何对象,而是将所有内容作为关联数组或数字索引数组。更容易处理,因为 PHP 提供的 stdObject 只不过是一个具有公共属性的哑容器,无法使用您自己的功能进行扩展。
$array = json_decode($string, true);
echo $array['trends'][0]['name'];
【讨论】:
【参考方案3】:就像你定义的对象一样使用它。即
$trends = $json_output->trends;
【讨论】:
以上是关于处理 PHP JSON 对象中的数据的主要内容,如果未能解决你的问题,请参考以下文章