Неисправность, проходящая через массив, созданный из четырехугольной ленты JSON - PullRequest
0 голосов
/ 13 января 2011

Я работаю над сайд-проектом, и в его основе мне нужно получить четырехугольный поток json в массив, который я могу перебрать.Мой код ниже и приводит к следующей ошибке:

Warning: Invalid argument supplied for foreach() in /homepages/7/d346835943/htdocs/dealrub/results.php on line 56

Вот пример фида json, который я правильно получаю:

$jsonurl = "http://api.foursquare.com/v2/venues/search?ll=".$lat.",".$lon."&limit=100";
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_encode($json, true);

foreach ( $json_output->response->groups[0]->items as $items )
{
     echo "{$items->name}\n";
}

Любая помощь относительно того, что я 'Я делаю неправильно, будет принята с благодарностью.Я оставил jsonurl без моего ключа API, но он успешно возвращает результаты json.

Ответы [ 2 ]

0 голосов
/ 13 января 2011
  1. Вы должны использовать json_decode.
  2. Проверьте, не является ли $json_ouput пустым.
  3. Вы передаете true в качестве второго аргумента json_decode (при условии, что вы правильно поняли), что означает, что он возвращает ассоциативный массив.

    Либо пропустите это:

    $json_output = json_decode($json);
    

    или доступ items в виде массива:

    foreach ( $json_output['response']['groups'][0]['items'] as $items )
    
0 голосов
/ 13 января 2011

Вы используете json_encode для строки, которая уже находится в json. Попробуйте вместо этого json_decode;)

...