Содержание


JSON Helper


JSON Helper, ZF2


    .

При создание вида, который возвращает JSON , важно также установить соответствующий заголовок ответа. Помощник вида JSON как раз и делает это. Так же, по умолчанию он отключает вывод макета (layout) если он включен, так как макеты обычно не используются при ответах в формате JSON.

Отправляет такой заголовок:

Content-Type: application/json

Большинство AJAX библиотек ищет именно такой заголовок, что бы определить, как и что обрабатывать.

Помощник JSON  используется таким образом:

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

Важно: Для поддержки макетов и установки кодировки используйте Zend\Json\Expr. Каждый метод помощника JSON  может принимать второй необязательный аргумент. Это логическое значение, отвечающее за включение (TRUE) или отключение (FALSE) макета/ Так же может быть массивом  с необходимыми опциями, который передается в Zend\Json::encode() и используется для кодировки данных.

Если второй параметр будет «TRUE» то макеты сохранятся. Что бы сохранить макеты, когда второй параметр массив, нужно указать ключ «keepLayouts», а значение установить в «TRUE».

// 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() позволяет кодировать родные выражения JSON используя объект Zend\Json\Expr. Эта опция отключена по умолчанию. Для включения этой возможности передайте значение «TRUE» в ключ «enableJsonExprFinder» массива опций:

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

Автор статьи: DuB