2014-10-02 4 views
0

다음은 REST API URL을 구문 분석하는 데 필요한 모든 코드와 내가 수행해야하는 작업입니다. 내가해야할 일은 서브 스크립 션 ID (아래 예에서는 "7")입니다. 하지만 내가 호출 할 때마다 만료일이 반환됩니다. 문제는 "7"이 선택한 클라이언트와 패키지에 따라 항상 달라질 것입니다. 따라서 "7", "8"또는 "232"인지 알 수 있어야하고이를 에코 또는 변수에 할당해야합니다. 나는 어떻게 그것에 대해 갈 것인가? 나는 그것을 얻을 수없는 것 같습니다.PHP JSON Curl 객체 디코딩 잘못된 값

CURL 및 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

추신 : 당신은 단순히 배열의 첫 번째 key를 가져 오기하고자하는 (유사하게, 당신은 current value를 얻을 수) json_decode ($ json, TRUE)는 객체 대신 배열을 반환합니다. – MyMomSaysIamSpecial

답변

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

출력은 모두 경찰에 의해 혼동하지 않습니다.

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

감사합니다. 그건 완벽하게 작동합니다! 감사합니다! –

+0

좋아요,이 똑같은 주제에 대해 다른 질문이 있습니다 ... 다른 게시물을 작성해야한다면 괜찮습니다. 그러나 지금 어떻게 되풀이 할 날짜를 얻을 수 있습니까? "7"인 가입 번호를 얻었지만 어떻게 날짜를 얻습니까? (예 : 2014-10-03) –

+0

제공된 링크를 따라 가면 "참고 자료"섹션에서 답을 찾을 수 있습니다. 나는 그 정보를 포함 할 나의 대답을 편집했다. –