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;
 | |
|             }
 | |
|         }
 | |
|     };
 | |
| }());
 | |
| 
 |