有什么方法可以使正确的json输出工作吗?(除了zf1中的$this->\u heleper->json->sendjson()之外)

    public function ajaxSectionAction() {
return new JsonModel(array(
    'some_parameter' => 'some value',
    'success' => true,
));
}

因为它抛出了一个错误:
> Fatal error: Uncaught exception 'Zend\View\Exception\RuntimeException'

> with message 'SmartyModule\View\Renderer\SmartyRenderer::render:

> Unable to render template ...

最佳答案

罗布·艾伦为此写了一篇文章:
Returning JSON from a ZF2 controller action
如果要返回jsonmodel,必须将jsonstrategy添加到视图管理器:

//module.config.php
return array(
    'view_manager' => array(
        'strategies' => array(
           'ViewJsonStrategy',
        ),
    ),
)

然后从操作控制器返回jsonmodel:
public function indexAction()
{
    $result = new JsonModel(array(
        ...
    ));

    return $result;
}

另一种方法是,也可以尝试这个代码来返回每个数据而没有视图渲染:
$response = $this->getResponse();
$response->setStatusCode(200);
$response->setContent('some data');
return $response;

你可以试试$response->setContent(json_encode(array(...)));或:
$jsonModel = new \Zend\View\Model\JsonModel(array(...));
$response->setContent($jsonModel->serialize());

09-26 19:50