没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\helpers\BaseJson

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

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

不要使用类 BaseJson。使用 yii\helpers\Json 类来代替。

公共属性

隐藏继承的属性

属性类型描述被定义在
$jsonErrorMessages array yii\helpers\BaseJson

公共方法

隐藏继承的方法

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

受保护的方法

隐藏继承的方法

方法描述被定义在
handleJsonError() 通过抛出异常错误与相应的错误消息来处理 encode()decode() yii\helpers\BaseJson
processData() 在将数据发送到 json_encode() 之前对其进行预处理。 yii\helpers\BaseJson

属性详情

$jsonErrorMessages 公共 静态 属性 (自版本 2.0.7 可用)
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() 公共 静态 方法

为给定的 JSON 字符串进行解码为 PHP 数据结构。

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

即将解码的数据

$asArray boolean

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

return mixed

返回 PHP 数据格式

throws yii\base\InvalidArgumentException

解码过程中发生的异常

encode() 公共 静态 方法

将给定值编码为 JSON 字符串。

该方法通过支持 JavaScript 表达式来增强 json_encode()。 特别地,该方法不会对以 \yii\helpers\JSExpression 对象表示的 JavaScript 表达式进行编码。

这里需要注意编码为 JSON 的数据必须按照 JSON 规范进行 UTF-8 编码。 你必须确保传递给此方法的字符串在传递之前具有正确的编码。

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

即将编码的数据。

$options integer

编码选项。 有关详细信息,请参阅 http://www.php.net/manual/en/function.json-encode.php。默认值为 JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE

return string

编码结果。

throws yii\base\InvalidArgumentException

编码过程中发生的异常。

errorSummary() 公共 静态 方法 (自版本 2.0.14 可用)

生成验证错误的摘要。

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

要显示其验证错误的 model(s)。

$options array

以键-值对表示的标记选项。以下是特殊处理的选项:

  • 显示错误:boolean,如果设置为 true 则显示每个属性的所有错误消息, 否则只显示每个属性的第一条错误消息。默认 false
return string

生成的错误摘要

handleJsonError() 受保护 静态 方法 (自版本 2.0.6 可用)

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

protected static void handleJsonError($lastError)
$lastError integer

错误代码来自 json_last_error()

throws yii\base\InvalidArgumentException

encoding/decoding 过程中发生的异常错误。

htmlEncode() 公共 静态 方法 (自版本 2.0.4 可用)

将给定的值编码为 JSON 字符串进行 HTML-escaping 转义实体,这样就可以安全地嵌入 HTML 代码中。

该方法通过支持 JavaScript 表达式来增强 json_encode()。 特别地,该方法不会对以 yii\web\JsExpression 对象表示的 JavaScript 表达式进行编码。

这里注意的是按照 JSON 规范编码的数据必须是 UTF-8 编码。 在传递字符串之前,必须确保传递给此方法的字符串具有适当的编码。

public static string htmlEncode($value)
$value mixed

传递被编码的数据

return string

返回编码的结果

throws yii\base\InvalidArgumentException

编码过程中发生的异常

processData() 受保护 静态 方法

在将数据发送到 json_encode() 之前对其进行预处理。

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

要处理的数据

$expressions array

JavaScript 表达式集合

$expPrefix string

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

return mixed

返回处理后的数据