如何从 Zend 只返回 JSON

2021-12-29 00:00:00 json rest web-services php zend-framework

我的项目使用 Zend Framework 1.x.我想为调用者函数创建一个只返回 JSON 字符串的 Web 服务.我尝试使用 Zend_Controller_Action 并应用这些方法:

I'm using Zend Framework 1.x for my project. I want to create a Web service return only JSON string for the caller function. I tried to use Zend_Controller_Action and applied those ways:

1.

$this->getResponse()
     ->setHeader('Content-type', 'text/plain')
     ->setBody(json_encode($arrResult));

2.

$this->_helper->getHelper('contextSwitch')
              ->addActionContext('nctpaymenthandler', 'json')
              ->initContext();

3.

header('Content-type: application/json');

4.

$this->_response->setHeader('Content-type', 'application/json');

5.

echo Zend_Json::encode($arrResult);
exit;

6.

return json_encode($arrResult);

7.

$this->view->_response = $arrResult;

但是当我使用 cURL 获取结果时,它返回带有一些 HTML 标记包围的 JSON 字符串.然后我尝试使用上述选项来使用 Zend_Rest_Controller.还是没有成功.

But when I used cURL to get result, it returned with JSON string surrounded by some HTML tags. Then I tried to user Zend_Rest_Controller with the options above. It still did not success.

P.S.:以上大部分方法都来自 Stack Overflow 上提出的问题.

P.S.: Most of those ways above are from the question which had been asked on Stack Overflow.

推荐答案

我喜欢这种方式!

//encode your data into JSON and send the response
$this->_helper->json($myArrayofData);
//nothing else will get executed after the line above

相关文章