在Symfony2中,有没有办法漂亮地打印JSON响应?

Bri*_*anV 1 json symfony

我正在Symfony2中编写一个REST API,我让我的控制器使用提供的JsonResponse类输出JSON响应:

$response = new JsonResponse(null, $status);
$response->setData($node['Content']);
return $response;
Run Code Online (Sandbox Code Playgroud)

但是,出于调试目的,能够非常打印输出会很不错.是否有一个参数我可以传递给JsonResponse对象以启用输出的漂亮打印?

Xav*_*ero 6

为此创建一个事件监听器,就像Pawel的答案是过度工程.

为了美化,你只需将JSON_PRETTY_PRINT常量传递给JsonResponsevia setEncodingOptions,就像在这个例子中一样:

$response = new JsonResponse( [ 'your' => 'data' ] );
$response->setEncodingOptions( $response->getEncodingOptions() | JSON_PRETTY_PRINT );
return $response;
Run Code Online (Sandbox Code Playgroud)

您可以查看Symfony API以获取更多信息:

这是v3.2...的文档,但例如旧版本v2.7也有此方法.