在symfony2中创建JMS Serializer处理程序

Fli*_*lip 7 serialization symfony deserialization json-deserialization

我试图按照相关的文档,在这里:
http://jmsyst.com/libs/serializer/master/configuration
这里
http://jmsyst.com/libs/serializer/master/handlers
这里
http://jmsyst.com /捆绑/ JMSSerializerBundle /主/食谱/ custom_handlers

我试图在symfony2中获取构建器对象时遇到困难(请参阅此对象的第二个链接).该服务是一个已经构建的序列化程序.我应该在哪里实现自己的处理程序?

更新:
我正在调查一个可能的解决方案:
$builder = \JMS\Serializer\SerializerBuilder::create();
或者
$builder = new \JMS\Serializer\SerializerBuilder();
这可能会有效,但让已经实例化的序列化程序使用我的处理程序会很好.要在控制器中获取序列化程序服务:$serializer = $this->get('jms.serializer');

Fli*_*lip 15

解决方案是使用正确的标记创建服务.

datetimezone_handler:
    class:     MyVendor\MyBundle\Serializer\Handler\DateTimeZoneHandler
    tags:
        - { name: jms_serializer.subscribing_handler }
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用。我已经这样设置了,但它仍然没有注册处理程序。它永远不会进入处理程序上的 getSubscribingMethods() 。 (2认同)