Class yii\web\JsonResponseFormatter

Inheritanceyii\web\JsonResponseFormatter » yii\base\Component » yii\base\BaseObject
Implementsyii\base\Configurable, yii\web\ResponseFormatterInterface
Available since version2.0
Source Code https://github.com/yiisoft/yii2/blob/master/framework/web/JsonResponseFormatter.php

JsonResponseFormatter formats the given data into a JSON or JSONP response content.

It is used by yii\web\Response to format response data.

To configure properties like $encodeOptions or $prettyPrint, you can configure the response application component like the following:

'response' => [
    // ...
    'formatters' => [
        \yii\web\Response::FORMAT_JSON => [
             'class' => 'yii\web\JsonResponseFormatter',
             'prettyPrint' => YII_DEBUG, // use "pretty" output in debug mode
             'keepObjectType' => false, // keep object type for zero-indexed objects
             // ...
        ],
    ],
],

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$behaviors yii\base\Behavior[] List of behaviors attached to this component. yii\base\Component
$contentType string|null Custom value of the Content-Type header of the response. yii\web\JsonResponseFormatter
$encodeOptions integer The encoding options passed to yii\helpers\Json::encode(). yii\web\JsonResponseFormatter
$keepObjectType boolean Avoids objects with zero-indexed keys to be encoded as array Json::encode((object)['test']) will be encoded as an object not array. yii\web\JsonResponseFormatter
$prettyPrint boolean Whether to format the output in a readable "pretty" format. yii\web\JsonResponseFormatter
$useJsonp boolean Whether to use JSONP response format. yii\web\JsonResponseFormatter

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
format() Formats the specified response. yii\web\JsonResponseFormatter
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\base\BaseObject
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
trigger() Triggers an event. yii\base\Component

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
formatJson() Formats response data in JSON format. yii\web\JsonResponseFormatter
formatJsonp() Formats response data in JSONP format. yii\web\JsonResponseFormatter

Constants

Hide inherited constants

ConstantValueDescriptionDefined By
CONTENT_TYPE_HAL_JSON 'application/hal+json; charset=UTF-8' HAL JSON Content Type yii\web\JsonResponseFormatter
CONTENT_TYPE_JSON 'application/json; charset=UTF-8' JSONP Content Type yii\web\JsonResponseFormatter
CONTENT_TYPE_JSONP 'application/javascript; charset=UTF-8' JSON Content Type yii\web\JsonResponseFormatter

Property Details

$contentType public property (available since version 2.0.14)

Custom value of the Content-Type header of the response. When equals null default content type will be used based on the useJsonp property.

public string|null $contentType null
$encodeOptions public property (available since version 2.0.7)

The encoding options passed to yii\helpers\Json::encode(). For more details please refer to https://www.php.net/manual/en/function.json-encode.php. Default is JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE. This property has no effect, when $useJsonp is true.

public integer $encodeOptions 320
$keepObjectType public property (available since version 2.0.44)

Avoids objects with zero-indexed keys to be encoded as array Json::encode((object)['test']) will be encoded as an object not array. This matches the behaviour of json_encode(). Defaults to Json::$keepObjectType value

public boolean $keepObjectType null
$prettyPrint public property (available since version 2.0.7)

Whether to format the output in a readable "pretty" format. This can be useful for debugging purpose. If this is true, JSON_PRETTY_PRINT will be added to $encodeOptions. Defaults to false. This property has no effect, when $useJsonp is true.

public boolean $prettyPrint false
$useJsonp public property

Whether to use JSONP response format. When this is true, the response data must be an array consisting of data and callback members. The latter should be a JavaScript function name while the former will be passed to this function as a parameter.

public boolean $useJsonp false

Method Details

format() public method

Formats the specified response.

public void format ( $response )
$response yii\web\Response

The response to be formatted.

formatJson() protected method

Formats response data in JSON format.

protected void formatJson ( $response )
$response yii\web\Response
formatJsonp() protected method

Formats response data in JSONP format.

protected void formatJsonp ( $response )
$response yii\web\Response