jquery.json-2.3.min.js 2.1 KB

1234567891011121314151617181920212223
  1. (function($){var escapeable=/["\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};$.toJSON=typeof JSON==='object'&&JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}
  2. var type=typeof o;if(type==='undefined'){return undefined;}
  3. if(type==='number'||type==='boolean'){return''+o;}
  4. if(type==='string'){return $.quoteString(o);}
  5. if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}
  6. if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month<10){month='0'+month;}
  7. if(day<10){day='0'+day;}
  8. if(hours<10){hours='0'+hours;}
  9. if(minutes<10){minutes='0'+minutes;}
  10. if(seconds<10){seconds='0'+seconds;}
  11. if(milli<100){milli='0'+milli;}
  12. if(milli<10){milli='0'+milli;}
  13. return'"'+year+'-'+month+'-'+day+'T'+
  14. hours+':'+minutes+':'+seconds+'.'+milli+'Z"';}
  15. if(o.constructor===Array){var ret=[];for(var i=0;i<o.length;i++){ret.push($.toJSON(o[i])||'null');}
  16. return'['+ret.join(',')+']';}
  17. var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='"'+k+'"';}else if(type==='string'){name=$.quoteString(k);}else{continue;}
  18. type=typeof o[k];if(type==='function'||type==='undefined'){continue;}
  19. val=$.toJSON(o[k]);pairs.push(name+':'+val);}
  20. return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&&JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&&JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\["\\\/bfnrtu]/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'"'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}
  21. c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
  22. return'"'+string+'"';};})(jQuery);