2012-07-12 112 views
0

我想在JSON查询中选择特定的对象。我对它进行了解码,尽管我花了几个小时寻找答案,但我无法为这个具体情况确定一个答案。我想从“博客”响应中选择URL,但是我无法越过数组。从JSON数组中取出对象

$oauth->fetch("http://api.tumblr.com/v2/user/info");                             
$json = json_decode($oauth->getLastResponse());                                    
$url = $json->response->user->blogs;               
$url1 = array($url->url); //This line doesn't give me the URL- I'm getting Array ([0] =>)                
print_r($url1);  

时,我没有在阵列器件的输出给了我:

Array ([0] => stdClass Object ([name] => 12748784 [url] => http://12748784.tumblr.com/ [followers] => 0 [primary] => 1 [title] => Untitled [description] => [admin] => 1 [updated] => 1341883193 [posts] => 1 [drafts] => 0 [messages] => 4 [queue] => 0 [ask] => 1 [ask_anon] => [tweet] => N [facebook] => N [facebook_opengraph_enabled] => N [type] => public))))) 

感谢任何帮助,您可以给我。我因搜索而疲惫不堪。

回答

0

根据Tumblr文档,blogs是一组对象。因此,array($url->url)是没有意义的。在你的代码中应该是$url1 = $url[0]->url,对我而言,这看起来很可怕。

我会做更多这样的事情。

$blogs = $json->response->user->blogs; 
$urls = array(); 
foreach ($blogs as $object) { 
    $urls[] = $object->url; 
} 

这样你就可以从对象数组中获得所有的博客URL。这有意义吗?