/** * Explode JSON parsed string into appropriate JSOON * @return object */ public function decoder($input) { if (is_object($input)) { if (isset($input->_jsoon)) { $jsoon = $input->_jsoon; unset($input->_jsoon); } else { $jsoon = false; } $properties = get_object_vars($input); if (is_object($jsoon)) { if (isset($jsoon->classname)) { $classname = $jsoon->classname; if (isset($jsoon->parameter)) { $parameter = $jsoon->parameter; switch ($parameter) { default: global ${$parameter}; $output = new $classname(${$parameter}); break; } } else { $output = new $classname(); } } elseif (isset($jsoon->relational_array)) { $output = array(); foreach ($properties as $pkey => $pvalue) { $output[$pkey] = jsoonHandler::decoder($input->{$pkey}); } return $output; } else { $output = new stdClass(); } } else { $output = new stdClass(); } foreach ($properties as $pkey => $pvalue) { $output->{$pkey} = jsoonHandler::decoder($input->{$pkey}); } } elseif (is_array($input)) { $output = array(); foreach ($input as $name => $value) { $output[$name] = jsoonHandler::decoder($input[$name]); } } else { $output = $input; } return $output; }