【发布时间】:2012-12-25 12:08:07
【问题描述】:
我对 JSON 还很陌生,我正在尝试从 google + 获取用户数据 JSon 代码是 https://www.googleapis.com/plus/v1/people?query=saurabh+sharma&key=AIzaSyADJjj8IeKuGb-woleHKTVouSlvAJUpTrs
请帮我在 php 中检索用户配置文件
【问题讨论】:
我对 JSON 还很陌生,我正在尝试从 google + 获取用户数据 JSon 代码是 https://www.googleapis.com/plus/v1/people?query=saurabh+sharma&key=AIzaSyADJjj8IeKuGb-woleHKTVouSlvAJUpTrs
请帮我在 php 中检索用户配置文件
【问题讨论】:
var_dump(json_decode(file_get_contents('https://www.googleapis.com/plus/v1/people?query=saurabh+sharma&key=AIzaSyADJjj8IeKuGb-woleHKTVouSlvAJUpTrs')));
【讨论】:
这确实有点像数组和对象之间的混合土豆泥(=混淆)。 JSON 完全是对象,除了数组“items”,它是一个...对象的数组。
试试这个:
<?php
$strUrl = "https://www.googleapis.com/plus/v1/people?query=saurabh+sharma&key=AIzaSyADJjj8IeKuGb-woleHKTVouSlvAJUpTrs";
$strContents = file_get_contents($strUrl);
$objPeopleFeed = json_decode($strContents);
//It's an array of objects, so:
echo "<h1>{$objPeopleFeed->title}</h1>";
foreach($objPeopleFeed->items as $objUser)
{
echo "
<p>
<img src='{$objUser->image->url}' />
<a href='{$objUser->url}'>{$objUser->displayName}</a>
<i>{$objUser->objectType}</i>
</p>";
}
?>
它的作用:它从 Web 获取内容(即 JSON),将其作为 JSON 解释为有效的 PHP 结构。从结构中,我们将标题打印为 H1 标题。从作为数组的项目中,我们遍历每个项目,打印来自$objUser->image->url 的图像src,打印用户链接$objUser->url 及其名称$objUser->displayName,以及可选的对象类型$objUser->objectType已在 Google 上注册。
因为一切都是对象,所以你使用对象来变量语法'->xyz'而不是数组索引'["xyz"]',我猜你被困在那里了。 $objPeopleFeed->items 是一个非关联数组,因此您可以使用数字循环遍历项目($objPeopleFeed->items[0] 表示第一项,1 表示第二项,等等...)。作为给您的最终 cookie,您可以使用 count($objPeopleFeed->items) 作为结果计数。
【讨论】: