[英]Symfony use JMS Serializer with JsonResponse
在 Symfony 應用程序中,在控制器上調用JsonResponse()
時是否可以使用 JMS 序列化程序?
$response = new ApiResponse(ApiResponse::STATUS_SUCCESS);
return new JsonResponse($response); // <-- I would like to use the JMS serializer
如果是 symfony 3,你可以使用這個:
$json = $this->get("serializer")->serialize($response, 'json');
return new JsonResponse($json, 200, [], true);
在 symfony 2 的情況下,您沒有最后一個參數,但您可以使用標准響應並指定內容類型:
$response->headers->set('Content-Type', 'application/json');
對於 Symfony 4+,如果autowire = true
,則可以以這種方式使用用於序列化的 DI
在 Symfony 4 中, autowire已經默認設置為true 。
use Symfony\Component\HttpFoundation\JsonResponse;
/**
* ... anything
*
* @return JsonResponse
*/
public action(SerializerInterface $serializer) {
return new JsonResponse($serializer->serialize($response, 'json'), 200, [], true);
}
而且由於 Symfony 5 可以簡單地調用json
函數。
在底層它使用 symfony serializer
器服務。
public function index(): Response {
$data = ... some json data
return $this->json($data);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.