/** * * Encodes the mixed $valueToEncode into JSON format. * * @param mixed $valueToEncode Value to be encoded into JSON format * * @param array $deQuote Array of keys whose values should **not** be * quoted in encoded string. * * @param bool $forceObject force all arrays to objects * * @return string JSON encoded value * */ public function encode($valueToEncode, $deQuote = array(), $forceObject = false) { mb_internal_encoding('ASCII'); if (!$this->_config['bypass_ext'] && function_exists('json_encode') && defined('JSON_FORCE_OBJECT')) { if ($this->_config['noerror']) { $old_errlevel = error_reporting(E_ERROR ^ E_WARNING); } $encoded = json_encode($valueToEncode, $forceObject ? JSON_FORCE_OBJECT : null); if ($this->_config['noerror']) { error_reporting($old_errlevel); } } else { // fall back to php-only method self::$forceObject = $forceObject ? true : null; $encoded = $this->_json_encode($valueToEncode); } // sometimes you just don't want some values quoted if (!empty($deQuote)) { $encoded = $this->_deQuote($encoded, $deQuote); } mb_internal_encoding('UTF-8'); return $encoded; }