PHP JSON解码卷曲对象错误的值

时间:2014-10-02 10:28:11

标签: php json api curl stdclass

下面是我解析REST API URL的全部代码,以及我尝试做我需要它做的事情。我需要它做的是告诉我订阅ID(在下面的示例中是“7”)。但每次我打电话,它只会返回到期日期。问题是“7”总是会有所不同,具体取决于他们选择的客户端和包。因此,我需要能够判断它是“7”,“8”还是“232”并将其回显或分配给变量。我该怎么办呢?我似乎无法得到它。

CURL和JSON解码

$url = "HIDDEN";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4);
$json = curl_exec($ch);
if(!$json) {
    echo curl_error($ch);
}
curl_close($ch);
echo "<pre>";
print_r(json_decode($json));
echo "</pre>";

$obj = json_decode($json);
echo $obj->{'name_l'};
echo "<br />";
echo $obj->{'subscriptions'}->{7};

代码输出     

    stdClass Object
    (
    [ok] => 1
    [user_id] => 3
    [name] => Nathan Brown
    [name_f] => Nathan
    [name_l] => Brown
    [email] => test@email.com
    [login] => username
    [subscriptions] => stdClass Object
        (
            [7] => 2014-10-03
        )

) Brown 2014-10-03

1 个答案:

答案 0 :(得分:1)

不要对所有的模糊感到困惑。您只想获取数组的第一个key(类似地,您可以获取current value):

reset($obj->subscriptions); // Just to be safe
$foo = key($obj->subscriptions); // 7
$bar = current($obj->subscriptions); // 2014-10-03