Дополнительно
Возврат JSON из сценария PHP
Я хочу вернуть JSON из PHP-скрипта.
Должен ли я просто отправить результат эхом? Должен ли я установить заголовок Content-Type
?
805
17
В то время как вы'вновь, как правило, хорошо без него, вы можете и должны установить заголовок типа контента:
Если я'м не с помощью определенной структуры, обычно я позволю какому-то запросу params, чтобы изменить поведение выходной. Это может быть полезно, как правило, для быстрого устранения неполадок, чтобы не отправлять заголовок, а иногда print_r полезных данных на глаз (хотя в большинстве случаев, он должен'т быть необходимы).
Полный кусок приятный и понятный PHP код возвращения JSON-это:
Согласно пособие по
json_encode
метод может возвращать не строку (ложь):Когда это происходит
Эхо json_encode($данных)
будет выводить пустую строку, которая недопустимый формат JSON.json_encode будет например не (и возвращать значение
false`), если аргумент содержит строку UTF-8.Эта ошибка должна быть зафиксирована в PHP, например так:
Тогда на приемном конце, конечно, должны осознавать, что наличие jsonError свойство указывает состояние ошибки, которое должно лечить соответствующим образом.
В рабочем режиме он может быть лучше, чтобы отправить только общее состояние ошибки клиента и войти в более конкретные сообщения об ошибках для последующего расследования.
Подробнее об обработке ошибок JSON в в PHP's документация.
Попробуйте json_encode для кодирования данных и установить тип содержимого в заголовке('тип контента: приложение/JSON');`.
Установите тип содержимого с помощью
header('Content-type: application/json');
и затем передайте данные эхом.Это также хорошо, чтобы установить безопасность доступ - просто заменить * с домена, который вы хотите быть в состоянии добраться до него.
Вот еще образцы о том, что: https://stackoverflow.com/questions/7564832/how-to-bypass-access-control-allow-origin
Как сказали выше:
сделает работу. но имейте в виду, что :
Аякс будет иметь никаких проблем, чтобы читать в формате JSON, даже если этот заголовок не используется, за исключением, если ваш JSON содержит некоторые HTML-теги. В этом случае вам нужно задать заголовок как application/json-файле.
Убедитесь, что ваш файл не в кодировке utf8-Бом. Этот формат добавить символ в начало файла, так что ваш заголовок() приведет к ошибке.
Ответ на ваш вопрос находится здесь,
Там говорится.
Так что если вы установите в заголовке этот тип и выведете свою строку JSON, она должна работать.
Да, вам нужно будет использовать echo для отображения вывода. Mimetype: application/json
Если вам нужно получить JSON из PHP с отправкой пользовательских данных, можно добавить этот заголовок('тип контента: приложение/JSON');
прежде чем напечатать любую другую вещь, тогда вы можете печатать вы логотипо
Эхо '{"и Монто-то": "'.$monto[0]->valor.'","moneda":"'.$moneda[0]->nombre.'","simbolo":"'.$moneda[0]->simbolo.'"}';`Это простой PHP-скрипт для возвращения мужской женский и идентификатор пользователя в качестве значения JSON будет быть любое произвольное значение как вы называете сценарий json.php .
Надеюсь, что это поможет спасибо
Если вы запрос к базе данных и результирующий набор в формате JSON, это может быть сделано так:
Для помощи в разборе результат с помощью jQuery взглянуть на учебник.
Простой способ отформатировать доменных объектов в JSON заключается в использовании Маршал сериализатор. Затем передайте данные для json_encode и отправить правильный заголовок типа содержимого для ваших нужд. При использовании фреймворков, таких как Symfony, вы Дон'т должны заботиться о настройке заголовков вручную. Там можно использовать JsonResponse.
Например правильный тип содержимого для работы с JavaScript будет
приложение/JavaScript
.Или если нужно поддержать некоторые довольно старые браузеры безопаснее будет
текст/JavaScript
.Для всех других целей, как использовать мобильное приложение
приложение/JSON
как контент-тип.Вот небольшой пример:
Вы можете использовать этот маленькая библиотека PHP. Он отправляет заголовки и дать вам объект, чтобы использовать его легко.
Это выглядит как :
Простая функция для возврата ответ JSON с код состояния HTTP.
`` json_response функция($данных=значение null, $httpStatus=200) { header_remove();
заголовок("и тип контента: приложение/JSON" - а);
заголовок('статус: ' . $httpStatus);
http_response_code($httpStatus);
Эхо json_encode($данных); } ``
Всякий раз, когда вы пытаетесь вернуть JSON ответ для API или еще убедитесь, что у вас есть правильные заголовки и убедитесь, что вы вернуть корректный JSON-данных.
Вот пример скрипта, который поможет вам вернуть ответ в формате JSON из PHP массива или из файла JSON.
``в PHP <?в PHP
// Установим необходимые заголовки заголовок('тип контента: приложение/JSON; кодировка=кодировка UTF-8'); заголовок('доступ-контроля-позволяет происхождения: *');
/**
// Получить JSON-данные из JSON-файла $JSON с = функции file_get_contents('ответ.в JSON');
// Выход, ответ Эхо $данных JSON;
/* =. =.=. =.=. =.=. =.=. =.=. =.=. =.=. =.=. =.=. =. /
/**
// Или построить JSON-данные из массива (на PHP) $json_var = [ 'хэштег' => 'HealthMatters', 'ид' => '072b3d65-9168-49fd-а1с1-a4700fc017e0', 'настроений' => [ 'минус' => 44, 'позитивный' => 56, ], 'общая' => '3400', 'пользователей' => [ [ 'profile_image_url' => 'http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg', 'screen_name' => 'rayalrumbel', 'текст' => 'чирикать (а), #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.', 'метка' => '{{$метка времени}}', ], [ 'profile_image_url' => 'http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg', 'screen_name' => 'mikedingdong', 'текст' => 'чирикать (Б), #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.', 'метка' => '{{$метка времени}}', ], [ 'profile_image_url' => 'http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg', 'screen_name' => 'ScottMili', 'текст' => 'твит (с) #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.', 'метка' => '{{$метка времени}}', ], [ 'profile_image_url' => 'http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg', 'screen_name' => 'yogibawa', 'текст' => 'чирикать (Д), #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.', 'метка' => '{{$метка времени}}', ], ], ];
// Выход, ответ Эхо json_encode($json_var); ``
``в JSON { "с хэштегом" и: "по HealthMatters" и, и"ИД" и: "и 072b3d65-9168-49fd-а1с1-a4700fc017e0" и, и"настроения " и;: { на "негативный" по: 44, на "положительный" у: 56 }, "по полной" и: "по 3400" и, и"пользователи " и;: [ { на "profile_image_url" и: "и http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg", на "screen_name-то": "по rayalrumbel" и, и"текст" и: "в Твиттере (а), #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.&я на "метки" и: " и{{$метка времени}}"и }, { на "profile_image_url" и: "и http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg", на "screen_name-то": "по mikedingdong" и, и"текст" и: "в Твиттере (Б), #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.&я на "метки" и: " и{{$метка времени}}"и }, { на "profile_image_url" и: "и http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg", на "screen_name-то": "по ScottMili" и, и"текст" и: "в Твиттере (с) #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.&я на "метки" и: " и{{$метка времени}}"и }, { на "profile_image_url" и: "и http://a2.twimg.com/profile_images/1285770264/PGP_normal.jpg", на "screen_name-то": "по yogibawa" и, и"текст" и: "в Твиттере (г), #HealthMatters потому что жизнь-это круто :) мы любим эту жизнь и хочу провести более.&я на "метки" и: " и{{$метка времени}}"и } ] }
``