1

这是我玩 Symfony 和 drupal 8 的第一天,所以如果我的问题很明显,请原谅我。

使用 Drupal 7:

drupal_json_output(array('products' => array_values($products)));
exit; 

json输出很干净:

{"products":["item_1","item_2",....]}

使用 Drupal 8:

use Symfony\Component\HttpFoundation\JsonResponse; 
// some process
print new JsonResponse(array('products' => array_values($products)));
exit;

它与标题一起输出:

HTTP/1.0 200 OK
Cache-Control: no-cache
Content-Type:  application/json
Date:          Wed, 18 Jul 2012 07:53:26 GMT

{"products":["item_1","item_2",....]}

你如何摆脱这些标题?

我坚持在这里阅读参考资料。

非常感谢任何提示。

4

1 回答 1

2

您可以通过调用仅获取响应的“内容” $response->getContent()

在你的情况下,你可以做

use Symfony\Component\HttpFoundation\JsonResponse; 
// some process
$response = new JsonResponse(array('products' => array_values($products)));
print $response->getContent();
exit;

但是,请注意,这将是一种不好的做法,因为您会在此过程中丢失响应标头,并且不会告诉您响应的内容类型是什么(在这种情况下:“application/json”) ETC ...

我不知道如何用drupal正确地做到这一点,任何提示都值得赞赏。

于 2012-07-18T08:23:55.290 回答