mirror of
				https://github.com/openresty/openresty.git
				synced 2024-10-13 00:29:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			104 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
var JSON = (function () {
 | 
						|
    var m = {
 | 
						|
            '\b': '\\b',
 | 
						|
            '\t': '\\t',
 | 
						|
            '\n': '\\n',
 | 
						|
            '\f': '\\f',
 | 
						|
            '\r': '\\r',
 | 
						|
            '"' : '\\"',
 | 
						|
            '\\': '\\\\'
 | 
						|
        },
 | 
						|
        s = {
 | 
						|
            'boolean': function (x) {
 | 
						|
                return String(x);
 | 
						|
            },
 | 
						|
            number: function (x) {
 | 
						|
                return isFinite(x) ? String(x) : 'null';
 | 
						|
            },
 | 
						|
            string: function (x) {
 | 
						|
                if (/["\\\x00-\x1f]/.test(x)) {
 | 
						|
                    x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
 | 
						|
                        var c = m[b];
 | 
						|
                        if (c) {
 | 
						|
                            return c;
 | 
						|
                        }
 | 
						|
                        c = b.charCodeAt();
 | 
						|
                        return '\\u00' +
 | 
						|
                            Math.floor(c / 16).toString(16) +
 | 
						|
                            (c % 16).toString(16);
 | 
						|
                    });
 | 
						|
                }
 | 
						|
                return '"' + x + '"';
 | 
						|
            },
 | 
						|
            object: function (x) {
 | 
						|
                if (x) {
 | 
						|
                    var a = [], b, f, i, l, v;
 | 
						|
                    if (x instanceof Array) {
 | 
						|
                        a[0] = '[';
 | 
						|
                        l = x.length;
 | 
						|
                        for (i = 0; i < l; i += 1) {
 | 
						|
                            v = x[i];
 | 
						|
                            f = s[typeof v];
 | 
						|
                            if (f) {
 | 
						|
                                v = f(v);
 | 
						|
                                if (typeof v == 'string') {
 | 
						|
                                    if (b) {
 | 
						|
                                        a[a.length] = ',';
 | 
						|
                                    }
 | 
						|
                                    a[a.length] = v;
 | 
						|
                                    b = true;
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                        a[a.length] = ']';
 | 
						|
                    } else if (x instanceof Object) {
 | 
						|
                        a[0] = '{';
 | 
						|
                        for (i in x) {
 | 
						|
                            v = x[i];
 | 
						|
                            f = s[typeof v];
 | 
						|
                            if (f) {
 | 
						|
                                v = f(v);
 | 
						|
                                if (typeof v == 'string') {
 | 
						|
                                    if (b) {
 | 
						|
                                        a[a.length] = ',';
 | 
						|
                                    }
 | 
						|
                                    a.push(s.string(i), ':', v);
 | 
						|
                                    b = true;
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                        a[a.length] = '}';
 | 
						|
                    } else {
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    return a.join('');
 | 
						|
                }
 | 
						|
                return 'null';
 | 
						|
            }
 | 
						|
        };
 | 
						|
    return {
 | 
						|
        copyright: '(c)2005 JSON.org',
 | 
						|
        license: 'http://www.crockford.com/JSON/license.html',
 | 
						|
        stringify: function (v) {
 | 
						|
            var f = s[typeof v];
 | 
						|
            if (f) {
 | 
						|
                v = f(v);
 | 
						|
                if (typeof v == 'string') {
 | 
						|
                    return v;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return null;
 | 
						|
        },
 | 
						|
        parse: function (text) {
 | 
						|
            try {
 | 
						|
                return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
 | 
						|
                        text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
 | 
						|
                    eval('(' + text + ')');
 | 
						|
            } catch (e) {
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    };
 | 
						|
}());
 | 
						|
 |