Symfony:提交Json字符串

I have following Json string:

  {
    "firstName":"Jane",
    "tagList": ["chess", "tennis"]
  }

And this is my UserType

     public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('email', EmailType::class)
        ->add('firstName')
        ->add('lastName')
        ->add('aboutMe')
        ->add('password')
        ->add('tagList', EntityType::class)
        ->add('agreeToContact')
        ->add('useMyLocation')
        ->add('pushNotifications')
        ->add('emailNotifications')
        ->add('inAppAlerts')
        ->add('addRequestIntoNatCal')
    ;

    $builder->addEventListener(FormEvents::PRE_SUBMIT, function(FormEvent $event) {
        $form = $event->getForm();

        $tagList = $form["tagList"]->getData();

        foreach ($tagList as $tag){
            $testTag = $this->em->getRepository('CoreBundle:Tag')->findOneBy([
                'name' => $tag
            ]);

            if ($testTag != null)
            {
                $user->addTag($testTag);
            }
            else
            {
                $newTag = new Tag();
                $newTag->setName($tag);
                $this->em->persist($newTag);
                $user->addTag($newTag);
            }
        }
    });
}

How can I submit list of tag names in Json and set correspondent Tag entites list to User? User and Tag entites have Many-to-Many relationship. Problem is: first I need to check if Tag entity exists, if yes add that tag to user, if not create new one and add it to user. How can I get current user in addEventListener

Use an eventSubscriber instead. Register it as a service, injecting token_storgage into it's constructor