вот такая ситуация: я работаю на отдыхе api на основе symfony3, он использует компонент FOSRestBundle и symfony serializer, поэтому методы возвращают массив, а FOSRest обрабатывает кодирование и ответ. Проблема заключается в использовании сериализатора json_encode с настройками по умолчанию и возвратными данными api, такими как «\ u00c9S» для некоторых символов. Поэтому мне нужно как-то передать JSON_UNESCAPED_UNICODE на json_encode(). Есть ли правильный способ достичь этой цели? Пример метода:Как передать параметры функции json_encode в компоненте Symfony Serializer
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use FOS\RestBundle\Controller\Annotations as Rest;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Component\HttpFoundation\Request;
/**
* Class ExampleController
* @package AppBundle\Controller
*/
class ExampleController extends Controller
{
/**
* @Rest\Get("/get-some-data")
* @param Request $request
* @return array
*/
public function getSomeDataAction(Request $request)
{
$someData = [
'prop1' => 'Value',
'prop2' => 'Value',
'prop3' => 'Value',
'prop4' => 'Value',
];
return $someData;
}
Так что, когда я делаю запрос на '/ Get-какой-данных', он возвращает меня:
{"prop1":"Value with \/","prop2":"Value with \u00c9"}
, но мне нужно, чтобы вернуться:
{"prop1":"Value with /","prop2":"Value with É"}
Я не понял. Я не вовлечен в процесс сериализации, FOSRestBundle обрабатывает его. Должен ли я расширить класс? – tarasikarius
Можете привести пример своего кода? Я постараюсь адаптировать свои собственные. В моем коде используется только компонент Symfony Serializer. – AnthonyB
Добавьте пример к вопросу. – tarasikarius