Как мне вернуть массив в ответ - PullRequest
2 голосов
/ 29 сентября 2011

Я пытаюсь вернуть массив в ответе HTTP.Я думаю вернуть массив в виде объектов JSON.Я делаю echo json_encode($arr), но ничего не получаю в ответ.

ОБНОВЛЕНИЕ: Я использую версию PHP, в которой нет метода json_encode.json_encode был введен в PHP 5.2.Итак, я думаю, вопрос в том, как бы вы вернули массив без использования json_encode?

     $arr = array();
    foreach($_POST['ids'] as $id)
    {
        $arr[$id] = $id;
    }   
    echo json_encode($arr);

    return;

Вот содержимое моего массива:

array(18) {
  [156795]=>
  string(6) "156795"
  [156800]=>
  string(6) "156800"
  [4292]=>
  string(4) "4292"
  [796053]=>
  string(6) "796053"
  [660520]=>
  string(6) "660520"
 ...

Ответы [ 4 ]

3 голосов
/ 29 сентября 2011

Не забудьте установить правильный тип MIME при отправке назад JSON:

header('Content-Type: application/json');
echo json_encode($arr);
2 голосов
/ 29 сентября 2011

json_encode() требует PHP 5.2.0 или выше. Убедитесь, что ваш хост не скомпилировал PHP с флагом --disable-json. Оба из них можно проверить с помощью функции phpinfo(). Код, который вы выложили до сих пор, прекрасно работает для меня.

0 голосов
/ 29 сентября 2011

Пожалуйста, используйте валидатор JSON, чтобы убедиться, что ваш JSON правильный

смотри, я сделал это, и все работало нормально

 $arr = array();
 $i=0;
    while($i<10)
    {
        $arr[$i] = $i;
        $i++;
    }   
    echo json_encode($arr);

    return;
0 голосов
/ 29 сентября 2011

JSON кодировать должен делать это без проблем.Когда я закачиваю эти данные в массив, он работает нормальноМожете ли вы опубликовать код для построения массива?Какую версию PHP вы используете?

...