Symfony使用JMS Serializer和JsonResponse

时间:2017-07-28 08:44:38

标签: json symfony jmsserializerbundle

在Symfony应用程序中,可以在控制器上调用<?php if ( $price_html = $product->get_price_including_tax() ): ?> <span class="price"><?php echo woocommerce_price($price_html); ?></span> 时使用JMS序列化程序吗?

JsonResponse()

感谢。

2 个答案:

答案 0 :(得分:5)

如果是symfony 3,你可以使用它:

    $json = $this->get("serializer")->serialize($response, 'json');
    return new JsonResponse($json, 200, [], true);

如果是symfony 2,你没有最后一个参数,但是你可以使用标准的Reponse并指定内容类型:

    $response->headers->set('Content-Type', 'application/json');

答案 1 :(得分:1)

对于Symfony 4+,如果autowire = true

,可以使用这种方式进行序列化的DI

在Symfony 4中, autowire 已设置为 true 作为默认值。

use Symfony\Component\HttpFoundation\JsonResponse;

/**
 * ... anything
 *
 * @return JsonResponse
 */
public action(Serializer $serializer) {
    return new JsonResponse($serializer->serialize($response, 'json'), 200, [], true);
}