Вы можете для этого создать собственный резолвер аргумента контроллера, вот документация по которой вы сможете понять как это делается:
https://symfony.com/doc/current/controller/value_r...
Рекомендую так же посмотреть в сторону того чтобы из request json content десериализовывать сразу в нужный вам DTO как в этом примере
https://symfony.com/blog/new-in-symfony-5-4-serial.... Удобно десериализовывать и валидировать сразу в этом аргумент ресолвере а в контроллере иметь сразу готовую и отвалидрованную DTO.