When creating views that return JSON, it's important to also set the appropriate response header. The JSON view helper does exactly that. In addition, by default, it disables layouts (if currently enabled), as layouts generally aren't used with JSON responses.
The JSON helper sets the following header:
Content-Type: application/json
Most XmlHttpRequest libraries look for this header when parsing responses to determine how to handle the content.
<?= $this->json($this->data) ?>
Enabling encoding using Zend\Json\Expr
The JSON helper accepts an array of options that will be passed to
Zend\Json\Json::encode()and used internally to encode data.Zend\Json\Json::encodeallows the encoding of native JSON expressions usingZend\Json\Exprobjects. This option is disabled by default. To enable this option, pass a booleantrueto theenableJsonExprFinderkey of the options array:<?= $this->json($this->data, ['enableJsonExprFinder' => true]) ?>