通过Response类,设置合适的contentheaders,即可创建任何类型的响应。一个JSON响应看起来像下面这样:

use Symfony\Component\HttpFoundation\Response;
 
$response = new Response();
$response->setContent(json_encode(array(
    'data' => 123,
)));
$response->headers->set('Content-Type', 'application/json');
框架里有一个好用的JsonResponse类,可以简化类似操作:
use Symfony\Component\HttpFoundation\JsonResponse;
 
$response = new JsonResponse();
$response->setData(array(
    'data' => 123
));

这可以把你的data数组转换成JSON,然后设置其Content-Type头为application/json

 

为了防止XSS|JSON Hijacking(JSON劫持),你应该传入一个关联数组作为JsonResponse最外层数组,而不是一个索引数组,这样一来最终结果就是一个对象:[{"object": "not inside an array"}]