Документация для разработчиков
Темная тема

Json

Класс \Bitrix\Main\Engine\Response\Json выполняет формирование json-ответа произвольной структуры. Автоматически будет выполнено преобразование данных в json, конвертация в utf-8, при необходимости, и выставлен заголовок application/json; charset=UTF-8.

Примеры

new \Bitrix\Main\Engine\Response\Json('ping-pong');
/**
Content-Type: application/json; charset=UTF-8
"ping-pong"
**/
new \Bitrix\Main\Engine\Response\Json([
	'id' => 2208,
	'type' => 'license',
]);
/**
Content-Type: application/json; charset=UTF-8
{"id": 2208, "type": "license"}
**/

Методы

Метод Описание С версии
__construct(
	$data = null,
	$options = 0
)
  • $data {mixed} - данные json-ответа. Должны конвертироваться в json-представление механизмами php либо, реализуя один из интерфейсов:
    \JsonSerializable
    \Bitrix\Main\Type\Contract\Jsonable
    \Bitrix\Main\Type\Contract\Arrayable
  • $options {int} Передается в json_encode, вторым аргументом.
setData(
	$data
)
Переустановка данных json-ответа. Должны конвертироваться в json-представление механизмами php либо, реализуя один из интерфейсов:
\JsonSerializable
\Bitrix\Main\Type\Contract\Jsonable
\Bitrix\Main\Type\Contract\Arrayable

Пользовательские комментарии

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
Павел Коношенко
Сообщение не промодерировано, возможны ошибки и неточности.
На случай, если надо дать ответ в виде JSON, на AJAX запрос.
Код
$result = [
    'Pupa' => 'Lupa',
    'Пупа' => 'Лупа'
];

$response = new \Bitrix\Main\Engine\Response\Json(
    $result, 
    JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRESERVE_ZERO_FRACTION
);
$application->getContext()->setResponse($response);
$response->send();
$application->terminate(0);
Всё, что ниже выполняться не будет.


Выше нужно подключить приложение, можно самым простым способом через пролог
Код
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
$application = \Bitrix\Main\Application::getInstance();
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх