如何在 Symfony3 中初始化 JMS 序列化程序?

How to Initialize JMS Serializer in Symfony3?

我正在尝试将 JMSSerializerBundle 用于 Symfony3(刚刚发布)。

这些是我在 TestController.php

中加载的命名空间

use JMS\Serializer\Serializer; use JMS\Serializer\SerializerBuilder; use JMS\Serializer\SerializationContext;

我试过 $data = $this->get('jms_serializer')->serialize($data, 'json'); 其中 $data 只是一个简单的对象,但出现以下错误:

Attempted to call an undefined method named "get" of class "AppBundle\Controller\TestController"

我还尝试了网站 $serializer = $container->get('jms_serializer'); 的用法示例,但得到 Notice: Undefined variable: container

我对 Symfony3 及其捆绑包还是个新手,似乎找不到任何关于 symfony 3 的 JMS 序列化程序的文档

我可以像这样 $serializer = SerializerBuilder::create()->build(); 初始化它,这样我就可以调用 serialize 方法,但我想知道正确的 "symfony way" 方法。

如果有人能分享一些知识,那就太好了。谢谢!

为了在您的控制器中使用容器,您的控制器必须扩展 Symfony\Bundle\FrameworkBundle\Controller\Controller 或至少 使用 Symfony\Component\DependencyInjection\ContainerAware、

无论如何,如果你想在 Symfony 中开始开发,我建议你开始阅读错误消息,在这种特定情况下,你的错误非常清楚。