phpsymfonyjmsserializerbundlejsonresponse

How to use JMSSerializer with symfony 4.2


i am building an Api with symfony 4.2 and want to use jms-serializer to serialize my data in Json format, after installing it with

composer require jms/serializer-bundle

And when I try to use it this way :

demands = $demandRepo->findAll();
return $this->container->get('serializer')->serialize($demands,'json');```

it gives me this error :

Service "serializer" not found, the container inside "App\Controller\DemandController" is a smaller service locator that only knows about the "doctrine", "http_kernel", "parameter_bag", "request_stack", "router" and "session" services. Try using dependency injection instead.```

Solution

  • As I said in my comment, you could use the default serializer of Symfony and use it injecting it by the constructor.

    //...
    
    use Symfony\Component\Serializer\SerializerInterface;
    
    //...
    
    class whatever 
    {
        private $serializer;
    
        public function __constructor(SerializerInterface $serialzer)
        {
            $this->serializer = $serializer;
        }
    
        public function exampleFunction()
        {
            //...
            $data = $this->serializer->serialize($demands, "json");
            //...
        }
    }