2015-05-23 3 views
1

enter image description hereFOS Rest Bundle не возвращает правильное JSON

Как вы можете видеть, «крышка» и индекс «парковочный» являются массивами. Но когда я возвращаю ответ, я получаю что-то вроде этого. enter image description here

Клавиши «обложка» и «парковка» не отображают значения в ответ 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?

+0

Пожалуйста, конвертировать ваши скриншоты в текст только –

+0

после точного вывода вместо экрана – Rahul

ответ

1

Хорошо, я нашел ответ на этот вопрос. Поскольку мой массив также имел объект как значение, сериализатор возвращал пустой объект json, возвращая ответ json. Таким образом, чтобы решить, что я проверил ли ключ объект или нет

foreach($options as $t){ 
     if(isset($graphObject[$t])) 
      // 
      $pageInfo[$t] = gettype($graphObject[$t])== 'object'?(array)$graphObject[$t]:$graphObject[$t]; 
    } 
Смежные вопросы