mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 13:02:24 +08:00
refactored Json helper.
This commit is contained in:
@ -81,18 +81,20 @@ class BaseJson
|
|||||||
*/
|
*/
|
||||||
protected static function processData($data, &$expressions, $expPrefix)
|
protected static function processData($data, &$expressions, $expPrefix)
|
||||||
{
|
{
|
||||||
if ($data instanceof \JsonSerializable) {
|
|
||||||
$data = $data->jsonSerialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_object($data)) {
|
if (is_object($data)) {
|
||||||
if ($data instanceof JsExpression) {
|
if ($data instanceof JsExpression) {
|
||||||
$token = "!{[$expPrefix=" . count($expressions) . ']}!';
|
$token = "!{[$expPrefix=" . count($expressions) . ']}!';
|
||||||
$expressions['"' . $token . '"'] = $data->expression;
|
$expressions['"' . $token . '"'] = $data->expression;
|
||||||
return $token;
|
return $token;
|
||||||
|
} elseif ($data instanceof \JsonSerializable) {
|
||||||
|
$data = $data->jsonSerialize();
|
||||||
|
} elseif ($data instanceof Arrayable) {
|
||||||
|
$data = $data->toArray();
|
||||||
|
} else {
|
||||||
|
$data = get_object_vars($data);
|
||||||
}
|
}
|
||||||
$data = $data instanceof Arrayable ? $data->toArray() : get_object_vars($data);
|
|
||||||
if ($data === [] && !$data instanceof Arrayable) {
|
if ($data === []) {
|
||||||
return new \stdClass();
|
return new \stdClass();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user