Wie man nur JSON von Zend zurückgibt
Bin ich mit dem Zend Framework 1.x für mein Projekt. Ich möchte zum erstellen eines Web service liefern nur JSON-string für die caller-Funktion. Ich habe versucht, zu verwenden Zend_Controller_Action
und diesen Möglichkeiten:
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;
Aber wenn ich cURL verwendet um das Ergebnis, kehrte er mit JSON-string, umgeben von einigen HTML-tags. Dann habe ich versucht Benutzer Zend_Rest_Controller
mit den oben genannten Optionen. Es hatte noch nicht den Erfolg.
P. S.: die Meisten dieser Möglichkeiten sind die oben aus der Frage, die gebeten wurden, auf Stack Overflow.
InformationsquelleAutor der Frage Gia Duong Duc Minh | 2013-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Gerne auf diese Weise!
InformationsquelleAutor der Antwort Venu
Müssen Sie deaktivieren Sie das layout und die view rendering.
Explizit deaktivieren, layout-und view-renderer:
Wenn Ihr mit den json action helper benötigen Sie ein json Kontext der Aktion. In diesem Fall wird die json helper deaktiviert die layout-und view-renderer für Sie.
InformationsquelleAutor der Antwort Gerard Roche
Ihrem code benötigen würde, um deaktivieren Sie das layout, um zu verhindern, dass die Inhalte zusammen mit der standard-Seite Vorlage. Aber eine viel einfachere Methode wäre einfach:
JSON Helfer wird die Kodierung von Variablen als JSON, legen Sie die entsprechenden Header und deaktivieren Sie die layout-und view-script für Sie.
InformationsquelleAutor der Antwort Tim Fountain
Ist es viel einfacher.
InformationsquelleAutor der Antwort Alex