Class yii\helpers\BaseJson

继承yii\helpers\BaseJson
子类yii\helpers\Json
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseJson.php

BaseJson 为 yii\helpers\Json 提供了具体的实现方法.

不要使用 BaseJson. 改用 yii\helpers\Json.

公共属性

隐藏继承的属性

属性类型描述定义在
$jsonErrorMessages array 分配给常量名称的 JSON 错误消息列表, 以便更好的处理版本差异. yii\helpers\BaseJson

公共方法

隐藏继承的方法

方法描述定义在
decode() 将给定的 JSON 字符串解码为 PHP 数据结构. yii\helpers\BaseJson
encode() 将给定的值编码为 JSON 字符串. yii\helpers\BaseJson
errorSummary() 生成验证错误的摘要. yii\helpers\BaseJson
htmlEncode() 将给定的值编码为 JSON 字符串 HTML 转义实体, 因此可以安全地嵌入到 HTML 代码中. yii\helpers\BaseJson

受保护的方法

隐藏继承的方法

方法描述定义在
handleJsonError() 通过抛出具有相应错误消息的异常, 来处理 encode()decode() 错误. yii\helpers\BaseJson
processData() 在将数据发送到json_encode()之前预处理数据. yii\helpers\BaseJson

属性详情

$jsonErrorMessages public static 属性 (可用自版本: 2.0.7)

分配给常量名称的 JSON 错误消息列表, 以便更好的处理版本差异.

public static array $jsonErrorMessages = ['JSON_ERROR_DEPTH' => 'The maximum stack depth has been exceeded.''JSON_ERROR_STATE_MISMATCH' => 'Invalid or malformed JSON.''JSON_ERROR_CTRL_CHAR' => 'Control character error, possibly incorrectly encoded.''JSON_ERROR_SYNTAX' => 'Syntax error.''JSON_ERROR_UTF8' => 'Malformed UTF-8 characters, possibly incorrectly encoded.''JSON_ERROR_RECURSION' => 'One or more recursive references in the value to be encoded.''JSON_ERROR_INF_OR_NAN' => 'One or more NAN or INF values in the value to be encoded''JSON_ERROR_UNSUPPORTED_TYPE' => 'A value of a type that cannot be encoded was given']

方法详情

decode() public static 方法

将给定的 JSON 字符串解码为 PHP 数据结构.

public static mixed decode ( $json, $asArray true )
$json string

要解码的 JSON 字符串.

$asArray boolean

是否以关联数组的形式返回对象.

return mixed

PHP 数据.

throws yii\base\InvalidArgumentException

如果有任何解码错误.

encode() public static 方法

将给定的值编码为 JSON 字符串.

该方法通过支持 JavaScript 表达式来增强json_encode().

特别是, 该方法不会编码用 yii\web\JsExpression 对象表示的 JavaScript 表达式.

Note: 编码为 JSON 的数据必须根据 JSON 规范采用 UTF-8 编码. 您必须确保传递给此方法的字符串在传递之前具有正确的编码.

public static string encode ( $value, $options 320 )
$value mixed

要编码的数据.

$options integer

编码选项. 默认为JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE. 有关更多详细信息, 请参阅 https://secure.php.net/manual/en/function.json-encode.php.

return string

编码结果.

throws yii\base\InvalidArgumentException

如果有任何编码错误.

errorSummary() public static 方法 (可用自版本: 2.0.14)

生成验证错误的摘要.

public static string errorSummary ( $models, $options = [] )
$models yii\base\Model|yii\base\Model[]

要显示期验证错误的模型.

$options array

标签选项的(name-value)对. 以下选项被特别处理:

  • showAllErrors: boolean, 如果设置为true, 则将显示每个属性的每个错误消息; 否则将仅显示每个属性的第一个错误消息. 默认为false.
return string

生成的错误摘要.

handleJsonError() protected static 方法 (可用自版本: 2.0.6)

通过抛出具有相应错误消息的异常, 来处理 encode()decode() 错误.

protected static void handleJsonError ( $lastError )
$lastError integer

来自 json_last_error() 的错误代码.

throws yii\base\InvalidArgumentException

如果有任何编码/解码错误.

htmlEncode() public static 方法 (可用自版本: 2.0.4)

将给定的值编码为 JSON 字符串 HTML 转义实体, 因此可以安全地嵌入到 HTML 代码中.

该方法通过支持 JavaScript 表达式来增强json_encode().

特别是, 该方法不会编码用 yii\web\JsExpression 对象表示的 JavaScript 表达式.

Note: 编码为 JSON 的数据必须根据 JSON 规范采用 UTF-8 编码. 您必须确保传递给此方法的字符串在传递之前具有正确的编码.

public static string htmlEncode ( $value )
$value mixed

要编码的数据.

return string

编码结果.

throws yii\base\InvalidArgumentException

如果有任何编码错误.

processData() protected static 方法

在将数据发送到json_encode()之前预处理数据.

protected static mixed processData ( $data, &$expressions, $expPrefix )
$data mixed

要处理的数据.

$expressions array

JavaScript 表达式的集合.

$expPrefix string

内部用于处理 JS 表达式的前缀.

return mixed

处理后的数据.