Example #1
0
 /**
  * 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;
 }