2014-10-02 20 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