PHP正在尝试获取非对象的属性
首先,我知道stackoverflow是完全由于这种错误,但没有一个是像我这样的,所以我张贴这个 我试图从api中获取JSON响应,当我试图回显它时,我得到了PHP正在尝试获取非对象的属性,php,json,Php,Json,首先,我知道stackoverflow是完全由于这种错误,但没有一个是像我这样的,所以我张贴这个 我试图从api中获取JSON响应,当我试图回显它时,我得到了试图获取非object属性的错误 $apicalldata = file_get_contents("https://api.digitalocean.com/v1/droplets/?client_id=6356465465363546&api_key=f9a702abe442198a4168346435366436cc4cd21
试图获取非object属性的错误
$apicalldata = file_get_contents("https://api.digitalocean.com/v1/droplets/?client_id=6356465465363546&api_key=f9a702abe442198a4168346435366436cc4cd2138dfc");
$call = json_decode($apicalldata);
echo $call->droplets->id;
这是我使用的代码。我期待着这样的回应:
{
"status": "OK",
"droplets": [
{
"id": 100823,
"name": "test222",
"image_id": 420,
"size_id":33,
"region_id": 1,
"backups_active": false,
"ip_address": "127.0.0.1",
"private_ip_address": null,
"locked": false,
"status": "active",
"created_at": "2013-01-01T09:30:00Z"
}
]
}
我为什么会有这个问题?$call->drops->id
是否正确?
感谢您的时间它看起来像是一个数组。试试这个
$droplets = $call->droplets;
$myDroplet = $droplets[0];
$myDropletID = $myDroplet->id;
echo $myDropletID;
*评论后更新*
$droplets = $call->droplets;
foreach($droplets as $droplet)
{
$dropletID = $droplet->id;
echo $dropletID;
}
试试这个
$call = json_decode($apicalldata);
foreach($call->Droplet as $adm)
{
echo "ID ".$adm->id."<br/>";
}
$call=json\u decode($apicalldata);
foreach($call->Droplet as$adm)
{
回显“ID”。$adm->ID.“
”;
}
您的JSON可能无效,$call
为空。可能$call
没有drops
键,因此$call->drops
为空。如果您使用var\u dump($call,json\u last\u error())
您会发现问题所在。据我所知,您的URL提供了{“状态”:“错误”,“错误消息”:“拒绝访问”,“消息”:“拒绝访问”}
。您是否尝试实际打印$apicalldata
变量以查看您收到的响应?检查您收到的响应?可能您得到了访问错误或类似的$call->drops[0]->id。注意到[0]了吗?水滴看起来像是样本中的一个数组。print\r($call)将向您显示所获取数据的结构。$call之后,[drops][0][id]应该向您显示id。它可以工作,但是否可以将其放入while循环中,以便输出每个液滴的id?当然可以。查看我的更新。仅供参考,你应该养成在问题中提出你想要的东西的习惯。