# Class yii\db\JsonExpression

Inheritance | yii\db\JsonExpression
Implements | JsonSerializable, yii\db\ExpressionInterface
Available since version | 2.0.14
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/db/JsonExpression.php

Class JsonExpression represents data that should be encoded to JSON.

For example:

    new JsonExpression(['a' => 1, 'b' => 2]); // will be encoded to '{"a": 1, "b": 2}'

## Protected Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$type | string|null | Type of JSON, expression should be casted to. | yii\db\JsonExpression
$value | mixed | The value to be encoded to JSON. | yii\db\JsonExpression

## Public Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
__construct() | JsonExpression constructor. | yii\db\JsonExpression
getType() |  | yii\db\JsonExpression
getValue() |  | yii\db\JsonExpression
jsonSerialize() | Specify data which should be serialized to JSON | yii\db\JsonExpression

## Constants

Hide inherited constants

Constant | Value | Description | Defined By
--- | --- | --- | ---
TYPE_JSON | 'json' |  | yii\db\JsonExpression
TYPE_JSONB | 'jsonb' |  | yii\db\JsonExpression

## Property Details

$type protected property

Type of JSON, expression should be casted to. Defaults to `null`, meaning no explicit casting will be performed. This property will be encountered only for DBMSs that support different types of JSON. For example, PostgreSQL has `json` and `jsonb` types.

protected string|null $type = null
$value protected property

The value to be encoded to JSON. The value must be compatible with [\yii\helpers\Json::encode()|Json::encode()]] input requirements.

protected mixed $value = null

## Method Details

__construct() public method

JsonExpression constructor.

See also $type.

public void __construct ( $value, $type = null )
$value | mixed | The value to be encoded to JSON. The value must be compatible with [\yii\helpers\Json::encode()|Json::encode()]] requirements.
$type | string|null | The type of the JSON. See yii\db\JsonExpression::$type

getType() public method

See also $type.

public null|string getType ( )
return | null|string | The type of JSON

getValue() public method

See also $value.

public mixed getValue ( )

jsonSerialize() public method (available since version 2.0.14.2)

Specify data which should be serialized to JSON

public mixed jsonSerialize ( )
return | mixed | Data which can be serialized by json_encode, which is a value of any type other than a resource.
throws | yii\base\InvalidConfigException | when JsonExpression contains QueryInterface object