mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +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