-->

问题尝试编码实体JSON(Problems try encode entity to json)

2019-10-18 23:45发布

IM尝试编码主义实体JSON字符串,发送的Ajax响应。 所以,我检查文档: 串行器组件

我尝试使用此代码:

$em = $this->getDoctrine()->getManager();
// Get the entities repository
$sesiones_registradas = $em->getRepository('AuditBundle:AuditSession')->findAll();

// Instance the object
$serializer = new Serializer(array(new JsonEncoder()),array(new GetSetMethodNormalizer()));

// Convert only an item
foreach($sesiones_registradas as $sesion){
    echo $serializer->normalize($sesion,'json');
    break;
}
// Stop script
die();

最后的代码,失败说:

无法正常化型AppsManantiales \ AuditBundle \实体\ AuditSession的对象,不支持正规化发现。

如果改变$serializer->normalize($sesion,'json')$serializer->serialize($sesion, 'json'); 该错误消息是:

不支持序列化的格式JSON

有任何想法吗 ?。

Answer 1:

使用JMS串行捆绑

该文档可以在这里找到: http://jmsyst.com/bundles/JMSSerializerBundle



Answer 2:

您的问题,我来自一个倒置的两个事实, normalizersencoders

该行:
$serializer = new Serializer(array(new JsonEncoder()),array(new GetSetMethodNormalizer()));
一定是:
$serializer = new Serializer(array(new GetSetMethodNormalizer()), array(new JsonEncoder()));



文章来源: Problems try encode entity to json