2014-10-21 3 views
0

Спасибо за downvote.Использование массива JSON в PHP

У меня есть REST API, который возвращает список задач в JSON формате, я декодировать его в массив Использование:

$decoded = json_decode($curl_response,true); 

и у меня возникают проблемы при использовании этого массива.

EDIT: К сожалению, для модифицирования вопрос, но curl_response является

{ 
    "error": true, 
    "message": "Api key is misssing" 
} 

Когда я Войти есть ключ апи в ответ JSON, я не знаю, как использовать дальше. Этот ключ требуется для аутентификации при любом последующем вызове api. Как включить этот apikey в заголовок запроса для дальнейших вызовов? Благодарю.

Ответ имеет вида (протестировано с использованием Client Расширенного REST в Chrome):

{ 
    error: false 
    tasks: [5] 
     0: { 
      id: 2 
      task: "[email protected]" 
      status: 0 
      createdAt: "2014-10-21 21:42:48" 
     }- 
     1: { 
      id: 3 
      task: "Inter Nam" 
      status: 0 
      createdAt: "2014-10-21 21:42:58" 
     }- 
     2: { 
      id: 4 
      task: "Vamos" 
      status: 0 
      createdAt: "2014-10-21 21:43:04" 
     }- 
     3: { 
      id: 5 
      task: "El Mundo" 
      status: 0 
      createdAt: "2014-10-21 23:12:33" 
     }- 
     4: { 
      id: 6 
      task: "El Clasico" 
      status: 0 
      createdAt: "2014-10-21 23:12:45" 
     }- 
    - 
} 

Я попытался расшифровать выше отклик в массиве $ декодированных, а затем я хочу, чтобы отобразить каждую задачу в петля, получить полное нет. задач. -------------------------------- (1) Использование Count ($ decoded) Я получаю 2, что явно неправильно, также я не могу получить отдельные задания, используя:

foreach($decoded as $task) { 
    echo $task["task"]; 
} 

Как реализовать (1)? Спасибо за вашу помощь.

+0

Вам необходимо открыть элемент 'tasks'; 'foreach ($ decoded ['tasks'] как $ task)'. – h2ooooooo

+0

Отправьте необработанный ответ на ваш вызов CURL, так как эта структура данных недействительна JSON, которая может быть причиной, по которой у вас возникла проблема, или вы каким-то образом изменили ее до вставки в свой вопрос. – RiggsFolly

+0

@RiggsFolly. Как получить исходный ответ от звонка CURL? –

ответ

0

Существует еще один уровень выше того, к которому вы пытаетесь получить доступ. Попробуйте следующее:

$tasks = $decoded['tasks']; 
foreach($tasks as $task) { 
    echo $task["task"]; 
} 
+0

Я уверен, что вы должны быть правы, но это не работает для меня. –

+0

Я не получаю результатов. Как я могу проверить правильность моего завихрения? –

+0

Хм, ты уже сказал, что все в порядке. Вы могли бы просто откликнуться на '$ curl_response'? – rjdown

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