出于某种原因,我没有从 json_decode 得到预期的输出。JSON 字符串从 API 调用返回,字符串的第一部分如下所示:
{"droplets":[{"id":67892618,"name":"NEW-TEK","memory":8192,"vcpus":4,"disk":20,blah blah blah
这是我正在使用的代码的相关部分:
function Test() {
$ch = curl_init('https://api.digitalocean.com/v2/droplets?tag_name=MYTAG');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer MYTOKEN','Content-Type: application/json'));
$json = curl_exec($ch);
$obj = json_decode($json,true);
echo 'Just making sure everything is working up till here!';
echo "\n\n";
$id = $obj->{'id'};
echo 'Droplet ID: ';
echo $id;
exit;
}
忽略所有随机回声线和新线的东西。只是使示例易于阅读。如您所见,没有任何东西从阵列中取出并回显。
由于您使用的$obj = json_decode($json,true);
是true
使输出成为数组,而不是您尝试在$id = $obj->{'id'};
此处使用的对象,因此数组如下所示:
Array
(
[droplets] => Array
(
[0] => Array
(
[id] => 67892618
[name] => NEW-TEK
[memory] => 8192
[vcpus] => 4
[disk] => 20
)
)
)
而是使用$id = $obj['droplets'][0]['id'];
as 您必须确定要查看的数组段。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句