2013-09-24 2 views
-5

Простая функция, запрос данных cURL и получение JSON. Я просто хочу использовать данные в JSON, но почему это большой объект stdclass. Как я могу упростить этот код?Упростите результат json_decode

<?php 
function movieRequest() 
{ 
    $url = "http://api.com/content/movies?format=json"; 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    $headers[] = "Content-type: application/json"; 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    $response = curl_exec($ch); 
    curl_close($ch); 
    return $response; 
} 

$data = movieRequest(); 
$data = (array) json_decode($data); 
print_r(get_object_vars(get_object_vars($data['categories'])['Access-Channel'])['category']); //Need this data but it still has stdClass Object. 
?> 

Это слишком много «get_object_vars». Любой лучший способ получить данные?

+5

RTFM для 'json_decode', пожалуйста? – deceze

+0

Простите, сейчас. – crazyoxygen

ответ

4

Вы можете использовать второй параметр json_decode() и есть ассоциативный массив в качестве результата:

$data = movieRequest(); 
$data = json_decode($data, true); 
print_r($data['categories']['Access-Channel']['category']); 

Из документации:

ДООСА

Когда TRUE, возвращаются объекты быть преобразованы в ассоциативные массивы.

+0

Thank.I лучше пойти читать больше документа. Я могу принять участие в 4-х минутах. – crazyoxygen

Смежные вопросы