如何配置Symfony JsonResponse输出?

时间:2017-08-14 05:58:18

标签: json symfony

有没有办法将JsonResponse输出配置为 - 例如 - 未转义的unicode?

类似于这个php函数的输出:

json_encode($array, JSON_UNESCAPED_UNICODE);

2 个答案:

答案 0 :(得分:1)

Yes, here you go:

$response = new JsonResponse($data);
$response->setEncodingOptions(JSON_UNESCAPED_UNICODE);

return $response;

答案 1 :(得分:0)

要全局执行此操作,请创建一个事件侦听器。像这样:

services.yml:

    event_listeners.json_formatter_listener:
        class: EventListeners\JsonResponseFormatterListener
        tags:
            - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }

JsonResponseFormatterListener.php:

<?php

namespace EventListeners;

use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;

class JsonResponseFormatterListener
{
    public function onKernelResponse(FilterResponseEvent $event)
    {
        $response = $event->getResponse();

        if ($response instanceof JsonResponse) {
            $response->setEncodingOptions(JSON_UNESCAPED_UNICODE);
        }
    }
}