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

Метод fromJsonString класса JsonResponse

Метод fromJsonString класса JsonResponse создаёт JSON-ответ из уже готовой JSON-строки. Первым параметром передаётся строка с JSON, вторым - HTTP-статус ответа, третьим - массив заголовков. В отличие от конструктора, метод не кодирует данные повторно, а использует строку как есть.

Синтаксис

public static function fromJsonString( string $json, int $status = 200, array $headers = [] ): static

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): JsonResponse { $json = '{"name": "abcde", "age": 25}'; return JsonResponse::fromJsonString($json); } } ?>

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

{"name": "abcde", "age": 25}

Пример

Давайте создадим JSON-ответ из строки с массивом и укажем статус:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/articles', name: 'article_list')] public function list(): JsonResponse { $json = '["article 1", "article 2", "article 3"]'; return JsonResponse::fromJsonString($json, 201); } } ?>

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

["article 1", "article 2", "article 3"]

Пример

Давайте передадим собственные заголовки вместе с JSON-строкой:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/user', name: 'user_show')] public function show(): JsonResponse { $json = '{"name": "user", "active": true}'; return JsonResponse::fromJsonString($json, 200, [ 'X-Custom-Header' => 'hello', ]); } } ?>

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

{"name": "user", "active": true}

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

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