From 3f6fec3c55d16ac2bbca592f23edc1021f18c2ac Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sat, 11 Jan 2014 17:25:54 -0500 Subject: [PATCH] refactored Json helper. --- framework/helpers/BaseJson.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/framework/helpers/BaseJson.php b/framework/helpers/BaseJson.php index ce65f8d7ca..bf62e8b37f 100644 --- a/framework/helpers/BaseJson.php +++ b/framework/helpers/BaseJson.php @@ -81,18 +81,20 @@ class BaseJson */ protected static function processData($data, &$expressions, $expPrefix) { - if ($data instanceof \JsonSerializable) { - $data = $data->jsonSerialize(); - } - if (is_object($data)) { if ($data instanceof JsExpression) { $token = "!{[$expPrefix=" . count($expressions) . ']}!'; $expressions['"' . $token . '"'] = $data->expression; 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(); } }