JMS序列化程序返回格式错误的JSON

时间:2017-08-14 13:29:05

标签: php json symfony serialization jmsserializerbundle

正如标题所说,我在Symfony 2.7上运行的JMS序列化程序出现问题,它返回格式错误的JSON。只有当数据库变大时才会发生这种情

我创建了一个简单的函数,它返回用JSON序列化的整个数据库,有时候对我来说检查一些数据很有用。

基本上我有这个功能

function asJson($serializationGroup = null)

{
    $serializer = SerializerBuilder::create()->build();

    $serGroups = array('Default');
    if (is_string($serializationGroup)) {
        $serGroups[] = $serializationGroup;
    }
    if (is_array($serializationGroup)) {
        foreach($serializationGroup as $sg) $serGroups[] = $sg;
    }

    $serializationContext = SerializationContext::create()->setGroups($serGroups);
    $serializationContext->setSerializeNull(true);
    return $serializer->serialize($this, 'json', $serializationContext);
}

返回包含与给定序列化组关联的数据的JSON。然后我从Controller中调用它来提供所有序列化组,以便序列化整个数据库。

但是,正如我所说,当我的数据库变得更大时,我得到一个格式错误的JSON。此外,错误始终不同

  

SyntaxError:JSON.parse:在对象的属性名称之后的'''''   第1行第182085行的JSON数据

     

SyntaxError:JSON.parse:在属性值之后预期','或'}'   JSON数据的第1行第367466行的对象

     

SyntaxError:JSON.parse:在对象的属性名称之后的'''''   JSON数据的第1行第1158行

我试图分析JSON,我注意到它在错误行之后完全被破坏了......有点像:

"commands_deletedse," <-- here starts the error, the rest is malformed
active ":true,"
readonly ":false,"
running ":false,"
...

更新

似乎可以在另一台拥有MySQL 5.7的PC上工作,而另一台拥有MySQL 5.5的PC上存在这个bug。我不知道它是否与...有关..

更新2

它似乎可以在同一台PC上运行,但是从Symfony命令开始工作,因此我认为它与nginx配置有关。事实上我甚至注意到从网站上调用它的工作时间是1/10,所以我会说这个错误来自于超时配置等等。我使用nginx + php-fpm。

更新3

我尝试启动Symfony内部网络服务器,然后调用控制器功能,但我得到了同样的错误。我开始不知道应该测试什么..

有什么想法吗?

0 个答案:

没有答案