2014-10-02 158 views
0

下面是我解析REST API URL的完整代码,以及我做我需要做的事情的尝试。我需要做的是告诉我订阅ID(在下面的例子中是“7”)。但每次我打电话时,它都会返回到期日期。问题在于,“7”总是会因客户和包装的选择而有所不同。所以我需要能够判断它是“7”,“8”还是“232”,并将其回显或分配给变量。我会怎么做呢?我似乎无法得到它。PHP JSON解码卷曲对象错误的值

卷曲和JSON解码码

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

) Brown 2014-10-03
+0

附: json_decode($ json,TRUE)将返回数组而不是对象。 – MyMomSaysIamSpecial 2014-10-02 10:31:16

回答

1

$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}; 

输出不要被所有的模糊混淆。你只是想获取一个数组的第一个key(同样,你可以得到current value):

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

非常感谢你!这很好用!我很感激! – 2014-10-02 10:54:55

+0

好的,我对这个完全相同的主题有另外一个问题......如果我需要发表另一篇文章,我不介意,但是我怎样才能让日期回复出来呢?我得到了订阅号码,这是“7”,但我如何得到日期? (即:2014-10-03) – 2014-10-23 05:30:31

+0

如果您按照我提供的链接,您可以在“另请参阅”部分找到答案。我编辑了我的答案以包含这些信息。 – 2014-10-23 07:46:34