jquery.json-2.4.min.js 2.2 KB

1234567891011121314151617181920212223
  1. /*! jQuery JSON plugin 2.4.0 | code.google.com/p/jquery-json */
  2. (function($){'use strict';var escape=/["\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},hasOwn=Object.prototype.hasOwnProperty;$.toJSON=typeof JSON==='object'&&JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}
  3. var pairs,k,name,val,type=$.type(o);if(type==='undefined'){return undefined;}
  4. if(type==='number'||type==='boolean'){return String(o);}
  5. if(type==='string'){return $.quoteString(o);}
  6. if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}
  7. if(type==='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;}
  8. if(day<10){day='0'+day;}
  9. if(hours<10){hours='0'+hours;}
  10. if(minutes<10){minutes='0'+minutes;}
  11. if(seconds<10){seconds='0'+seconds;}
  12. if(milli<100){milli='0'+milli;}
  13. if(milli<10){milli='0'+milli;}
  14. return'"'+year+'-'+month+'-'+day+'T'+
  15. hours+':'+minutes+':'+seconds+'.'+milli+'Z"';}
  16. pairs=[];if($.isArray(o)){for(k=0;k<o.length;k++){pairs.push($.toJSON(o[k])||'null');}
  17. return'['+pairs.join(',')+']';}
  18. if(typeof o==='object'){for(k in o){if(hasOwn.call(o,k)){type=typeof k;if(type==='number'){name='"'+k+'"';}else if(type==='string'){name=$.quoteString(k);}else{continue;}
  19. type=typeof o[k];if(type!=='function'&&type!=='undefined'){val=$.toJSON(o[k]);pairs.push(name+':'+val);}}}
  20. return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&&JSON.parse?JSON.parse:function(str){return eval('('+str+')');};$.secureEvalJSON=typeof JSON==='object'&&JSON.parse?JSON.parse:function(str){var filtered=str.replace(/\\["\\\/bfnrtu]/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+str+')');}
  21. throw new SyntaxError('Error parsing JSON, source is not valid.');};$.quoteString=function(str){if(str.match(escape)){return'"'+str.replace(escape,function(a){var c=meta[a];if(typeof c==='string'){return c;}
  22. c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
  23. return'"'+str+'"';};}(jQuery));