Как вы можете видеть, индексы ‘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?
Хорошо, я нашел ответ на это.
Поскольку у моего массива также был объект в качестве значения, сериализатор возвращал пустой объект json, возвращая ответ на json. Таким образом, чтобы решить, что я проверил, является ли ключ объектом или нет
foreach($options as $t){
if(isset($graphObject[$t]))
//
$pageInfo[$t] = gettype($graphObject[$t])== 'object'?(array)$graphObject[$t]:$graphObject[$t];
}
Других решений пока нет …