Можете ли вы получить данные JSON без того, чтобы они были json_encoded в php? - PullRequest
1 голос
/ 12 мая 2011

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

echo '{"subscriptions": [{"subscribe":"'.$subscribe[0].'"},{"subscribe":"'.$subscribe[1].'"},{"subscribe":"'.$subscribe[2].'"},{"subscribe":"'.$subscribe[3].'"},{"subscribe":"'.$subscribe[4].'"}]}';

Могу ли я использовать вызов jQuery ajax json для получения данных?

Ответы [ 5 ]

3 голосов
/ 12 мая 2011

Это, конечно, выглядит нормально и должно работать просто отлично.

json_encode() только облегчает процесс, так как было бы довольно легко сделать ошибку цитирования / скобки / скобки / квадратные скобки при создании строки вручную.

Полагаю, вы спрашиваете только, поскольку json_encode() недоступно на вашем сервере. В качестве альтернативы вы можете попробовать компонент из Zend Framework. Это попытка использовать json_encode(), но когда она недоступна, используется встроенный подход.

См. http://framework.zend.com/manual/en/zend.json.html

3 голосов
/ 12 мая 2011

Да, если данные эха являются действительными данными JSON

2 голосов
/ 12 мая 2011

По сути, все, что происходит, это то, что вы создаете формат JSON и создаете свой собственный кодер. Но вам также потребуется опубликовать свои собственные заголовки JSON. Начните свой PHP-файл обратного вызова с:

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

Помните, что вам нужно уделить особое внимание форматированию JSON, иначе это нарушит работу вашего приложения.

1 голос
/ 12 мая 2011

Можно, но это не рекомендуется.Вы должны использовать json_encode.Если у вас возникли проблемы с первым преобразованием объекта, вы можете сделать это следующим образом:

$obj = array(
  "subscriptions" => array(
     array("subscribe" => (string)$subscribe[0]),
     array("subscribe" => (string)$subscribe[1]),
     array("subscribe" => (string)$subscribe[2]),
     array("subscribe" => (string)$subscribe[3]),
  )
);
echo json_encode($obj);

Cheers

1 голос
/ 12 мая 2011

Полагаю, что пока вы отправляете нам правильный заголовок сервера, указывающий, что это JSON-контент Content-Type: application/json, это должно быть хорошо.

Что не так с использованием PHP json_encode()?Вы работаете со старой версией PHP?

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