РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
249 of 1361 menu

Метод setEncodingOptions

Метод setEncodingOptions класса JsonResponse задаёт битовую маску опций для функции json_encode. Это позволяет управлять форматированием, экранированием и глубиной вложенности JSON-ответа. Первым параметром передаётся целое число - комбинация констант JSON_*. Метод возвращает $this, что позволяет строить цепочку вызовов.

Синтаксис

public function setEncodingOptions(int $encodingOptions): static

Пример

Давайте создадим JSON-ответ с красивым форматированием:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ApiController extends AbstractController { #[Route('/api/data', name: 'api_data')] public function data(): JsonResponse { $res = new JsonResponse(['a' => 1, 'b' => 2, 'c' => 3]); $res->setEncodingOptions(JSON_PRETTY_PRINT); return $res; } } ?>

Результат выполнения кода:

{ "a": 1, "b": 2, "c": 3 }

Пример

Давайте объединим несколько флагов, чтобы получить неэкранированные слэши и красивое форматирование:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ApiController extends AbstractController { #[Route('/api/url', name: 'api_url')] public function url(): JsonResponse { $res = new JsonResponse(['url' => 'https://example.com/article']); $res->setEncodingOptions(JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); return $res; } } ?>

Результат выполнения кода:

{ "url": "https://example.com/article" }

Пример

Давайте зададим опции через цепочку вызовов вместе с setData:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ApiController extends AbstractController { #[Route('/api/chain', name: 'api_chain')] public function chain(): JsonResponse { return (new JsonResponse()) ->setEncodingOptions(JSON_UNESCAPED_UNICODE) ->setData(['text' => 'abcde']); } } ?>

Результат выполнения кода:

{"text":"abcde"}

Смотрите также

  • класс JsonResponse,
    который формирует JSON-ответ
  • метод setData,
    который задаёт данные ответа
  • метод fromJsonString,
    который создаёт ответ из JSON-строки
  • класс Response,
    который представляет базовый HTTP-ответ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить