FOS Rest Bundle没有返回正确的json

时间:2015-05-23 03:25:57

标签: php rest symfony facebook-php-sdk fosrestbundle

enter image description here

如您所见,'cover'和'parking'索引都是数组。但是当我返回响应时,我会得到类似的东西。 enter image description here

'cover'和'parking'键都没有在json响应中显示值。 所以这是我的控制器:

    public function getPageInfoAction($page)
        {

            $request = (new FacebookRequest(
                $this->initAppAction(),
                'GET',
                "/{$page}"
            ))->execute();

            $graphObject = $request->getGraphObject();
            //dump($graphObject);
            //die;
            return $graphObject->asArray();
}

这是我的config.yml文件

#fos_rest
fos_rest:
    param_fetcher_listener: force
    view:
        view_response_listener: 'force'
        formats:
            xml:  true
            json: true
        templating_formats:
            html: true
    format_listener:
        rules:
            - { path: ^/, priorities: [ html, json, xml ], fallback_format: ~, prefer_extension: true }
    exception:
        codes:
            'Symfony\Component\Routing\Exception\ResourceNotFoundException': 404
            'Doctrine\ORM\OptimisticLockException': HTTP_CONFLICT
        messages:
            'Symfony\Component\Routing\Exception\ResourceNotFoundException': true
    allowed_methods_listener: true
    access_denied_listener:
        json: true
    body_listener: true
    disable_csrf_role: ROLE_API

那么我怎样才能返回正确的json响应?

1 个答案:

答案 0 :(得分:1)

好的,我找到了答案。 由于我的数组也有一个对象作为值,序列化程序返回空的json对象,同时将响应返回给json。所以要解决这个问题,我检查了密钥是否是对象

 foreach($options as $t){
        if(isset($graphObject[$t]))
            //
            $pageInfo[$t] = gettype($graphObject[$t])== 'object'?(array)$graphObject[$t]:$graphObject[$t];
    }