Welcome to 3DMICK
+91 (971) 119-1127

Zend JSON Helper


Zend JSON Helper

JSON stands for Java script Object Notation.JSON is used for storing and exchanging text information .It is much like XML.It is “self-describing” and easy to understand.

In Zendframework when we create views that  returns the 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 AJAX libraries look for this header when parsing responses to determine how to handle the content.
Usage of the JSON helper is very straightforward:

<?php echo $this->json($this->data) ?>

Keeping layouts and enabling encoding using Zend_Json_Expr

Each method in the JSON helper accepts a second, optional argument. This second argument can be a boolean flag to enable or disable layouts, or an array of options that will be passed to Zend_Json::encode() and used internally to encode data.

To keep layouts, the second parameter needs to be boolean TRUE. When the second parameter is an array, keeping layouts can be achieved by including akeepLayouts key with a value of a boolean TRUE.

  1. Boolean true as second argument enables layouts:

echo $this->json($this->data, true);
Or    boolean true as "keepLayouts" key:
echo $this->json($this->data, array('keepLayouts' => true));

Zend_Json::encode allows the encoding of native JSON expressions using Zend_Json_Expr objects. This option is disabled by default. To enable this option, pass a boolean TRUE to the enableJsonExprFinder key of the options array:

<?php echo $this->json($this->data, array(
'enableJsonExprFinder' => true,
'keepLayouts'          => true,
)) ?>