* @copyright 2005 Joshua Eichorn * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 0.5.6 * @link http://pear.php.net/package/PackageName */ // {{{ class HTMLA_AJAX_Serialize_JSON class HTML_AJAX_Serializer_JSON { // {{{ variables-properties /** * JSON instance * @var HTML_AJAX_JSON * @access private */ var $_json; /** * use json php extension http://www.aurore.net/projects/php-json/ * @access private */ var $_jsonext; /** * use loose typing to decode js objects into php associative arrays * @access public */ var $loose_type; // }}} // {{{ constructor function HTML_AJAX_Serializer_JSON($use_loose_type = true) { $this->loose_type = (bool) $use_loose_type; $this->_jsonext = $this->_detect(); if(!$this->_jsonext) { $use_loose_type = ($this->loose_type) ? SERVICES_JSON_LOOSE_TYPE : 0; $this->_json = new HTML_AJAX_JSON($use_loose_type); } } // }}} // {{{ serialize /** * This function serializes and input passed to it. * * @access public * @param string $input The input to serialize. * @return string $input The serialized input. */ function serialize($input) { if($this->_jsonext) { return json_encode($input); } else { return $this->_json->encode($input); } } // }}} // {{{ unserialize /** * this function unserializes the input passed to it. * * @access public * @param string $input The input to unserialize * @return string $input The unserialized input. */ function unserialize($input) { if($this->_jsonext) { return json_decode($input, $this->loose_type); } else { return $this->_json->decode($input); } } // }}} // {{{ _detect /** * detects the loaded extension */ function _detect() { return extension_loaded('json'); } // }}} } // }}} /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ ?>