Example #1
0
 function json_encode($value)
 {
     switch (gettype($value)) {
         case 'double':
         case 'integer':
             return $value > 0 ? $value : '"' . $value . '"';
         case 'boolean':
             return $value ? 'true' : 'false';
         case 'string':
             return '"' . str_replace(array("\n", "\\b", "\t", "\f", "\r"), array('\\n', '\\b', '\\t', '\\f', '\\r'), addslashes($value)) . '"';
         case 'NULL':
             return 'null';
         case 'object':
             return '"Object ' . get_class($value) . '"';
         case 'array':
             if (isVector($value)) {
                 if (!$value) {
                     return $value;
                 }
                 foreach ($value as $v) {
                     $result[] = json_encode($v);
                 }
                 return '[' . implode(',', $result) . ']';
             } else {
                 $result = '{';
                 foreach ($value as $k => $v) {
                     if ($result != '{') {
                         $result .= ',';
                     }
                     $result .= json_encode($k) . ':' . json_encode($v);
                 }
                 return $result . '}';
             }
         default:
             return '"' . addslashes($value) . '"';
     }
 }
Example #2
0
function jsonEncode(&$value)
{
    if (function_exists('json_encode')) {
        $string = json_encode($value);
        checkJsonError($value);
        return $string;
    }
    switch (gettype($value)) {
        case 'double':
        case 'integer':
            return $value;
        case 'boolean':
            return $value ? 'true' : 'false';
        case 'string':
            return '"' . preg_replace("/\r?\n/", '\\n', addcslashes($value, '"\\/')) . '"';
        case 'NULL':
            return 'null';
        case 'object':
            return '"Object ' . addcslashes(get_class($value), '"\\/') . '"';
        case 'array':
            if (isVector($value)) {
                return '[' . join(',', array_map('jsonEncode', $value)) . ']';
            } else {
                $result = '{';
                foreach ($value as $subkey => $subvalue) {
                    if ($result != '{') {
                        $result .= ',';
                    }
                    $result .= '"' . $subkey . '":' . jsonEncode($subvalue);
                }
                return $result . '}';
            }
        default:
            return '"' . addcslashes(gettype($value), '"\\/') . '"';
    }
}