Foreach возвращая ошибки - PullRequest
       4

Foreach возвращая ошибки

1 голос
/ 20 ноября 2011

Я работаю с API Yahoo - и в значительной степени отклоняюсь от их примера.НО я получаю ошибки, такие как: неверный аргумент, предоставленный для foreach ()

Вот фактический оператор foreach:

foreach ($data->query->results->result as $r){
   // do something with the data

  }

Весь код, который я запускаю, находится здесь:

$c =curl_init("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20local.search%20where%20state%3D'delaware'%20and%20city%20%3D%20'smyrna'%20and%20query%3D'pizza'&format=json"); 

curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 20); // query times out after 20 seconds

$data = curl_exec($c); // I asked for data format to be in json in the query it appears to be returned decoded
//print_r($data);
$data = curl_exec($c);
if ($data === FALSE) {
    die("Curl failed with error: " . curl_error($c));
}
$data = json_decode($data);
if (is_null($data)) {
    die("json_decode failed with error: " . json_last_error());
}
foreach ($data->query->results->result as $r){
   // do something with the data

  }

$ data - это декодированный ответ json - он получил данные и кажется, что моя структура правильная - я просто хочу просмотреть и показать названия компаний, например - но не ходи.

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

json_decode требует, чтобы вы передали дополнительный логический параметр, если хотите, чтобы он возвращал массив, а не объект.

$data = json_decode($data,TRUE);
if (is_null($data)) {
    die("json_decode failed with error: " . json_last_error());
}
foreach ($data['query']['results]'['Result'] as $r){
   // do something with the data

  }
1 голос
/ 20 ноября 2011

Должно быть $data->query->results->Result.Обратите внимание, заглавные буквы Результат .

Чтобы помочь вам с JSON.Вставьте всю строку JSON в этой утилиты и визуально просмотрите структуру дерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...