无法使用 json_decode 提取值

原子链

出于某种原因,我没有从 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章