Метод toArray класса ClientResponse
Метод toArray класса ClientResponse
преобразует тело HTTP-ответа, содержащее
JSON-строку, в ассоциативный массив PHP.
Метод не принимает параметров и возвращает
массив. Если тело ответа не является
корректным JSON, будет выброшено исключение
JsonException.
Синтаксис
public function toArray(): array
Пример
Давайте выполним GET-запрос к API, который возвращает JSON-объект, и преобразуем ответ в массив:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\HttpClient\HttpClient;
class ApiController extends AbstractController
{
#[Route('/api', name: 'api_index')]
public function index(): Response
{
$client = HttpClient::create();
$response = $client->request('GET', 'https://example.com/api/article');
$res = $response->toArray();
return new Response($res['title']);
}
}
?>
Если сервер вернул JSON вида
{"title": "hello", "id": 1},
то результатом выполнения будет строка:
"hello"
Пример
Давайте выведем весь полученный массив
с помощью функции print_r:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\HttpClient\HttpClient;
class ApiController extends AbstractController
{
#[Route('/api/list', name: 'api_list')]
public function list(): Response
{
$client = HttpClient::create();
$response = $client->request('GET', 'https://example.com/api/articles');
$res = $response->toArray();
return new Response(print_r($res, true));
}
}
?>
Если сервер вернул JSON-массив
["article 1", "article 2", "article 3"],
то результатом выполнения будет:
["article 1", "article 2", "article 3"]
Смотрите также
-
класс
ClientResponse,
который представляет HTTP-ответ клиента -
метод
getContent,
который возвращает тело ответа строкой -
метод
getStatusCode,
который возвращает код состояния ответа -
метод
getHeaders,
который возвращает заголовки ответа