X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..refs/heads/old:/docs/source/JSON.html?ds=sidebyside diff --git a/docs/source/JSON.html b/docs/source/JSON.html index 704fbab1..d21157e9 100644 --- a/docs/source/JSON.html +++ b/docs/source/JSON.html @@ -1,11 +1,18 @@ - -
-/** + + + ++ \ No newline at end of fileThe source code + + + + +/*! + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ +/** * @class Ext.util.JSON * Modified version of Douglas Crockford"s json.js that doesn"t * mess with the Object prototype @@ -29,38 +36,42 @@ Ext.util.JSON = new (function(){ return n < 10 ? "0" + n : n; }, doDecode = function(json){ - return eval("(" + json + ')'); + return eval("(" + json + ")"); }, doEncode = function(o){ - if(typeof o == "undefined" || o === null){ + if(!Ext.isDefined(o) || o === null){ return "null"; }else if(Ext.isArray(o)){ return encodeArray(o); - }else if(Object.prototype.toString.apply(o) === '[object Date]'){ + }else if(Ext.isDate(o)){ return Ext.util.JSON.encodeDate(o); - }else if(typeof o == "string"){ + }else if(Ext.isString(o)){ return encodeString(o); }else if(typeof o == "number"){ + //don't use isNumber here, since finite checks happen inside isNumber return isFinite(o) ? String(o) : "null"; - }else if(typeof o == "boolean"){ + }else if(Ext.isBoolean(o)){ return String(o); }else { var a = ["{"], b, i, v; for (i in o) { - if(!useHasOwn || o.hasOwnProperty(i)) { - v = o[i]; - switch (typeof v) { - case "undefined": - case "function": - case "unknown": - break; - default: - if(b){ - a.push(','); + // don't encode DOM objects + if(!o.getElementsByTagName){ + if(!useHasOwn || o.hasOwnProperty(i)) { + v = o[i]; + switch (typeof v) { + case "undefined": + case "function": + case "unknown": + break; + default: + if(b){ + a.push(','); + } + a.push(doEncode(i), ":", + v === null ? "null" : doEncode(v)); + b = true; } - a.push(doEncode(i), ":", - v === null ? "null" : doEncode(v)); - b = true; } } } @@ -113,6 +124,18 @@ Ext.util.JSON = new (function(){ return a.join(""); }; + /** + *- +Encodes a Date. This returns the actual string which is inserted into the JSON string as the literal expression. + * The returned value includes enclosing double quotation marks.
+ *The default return format is "yyyy-mm-ddThh:mm:ss".
+ *To override this:
+ * @param {Date} d The Date to encode + * @return {String} The string literal to use in a JSON string. + */ this.encodeDate = function(o){ return '"' + o.getFullYear() + "-" + pad(o.getMonth() + 1) + "-" + @@ -173,6 +196,6 @@ Ext.encode = Ext.util.JSON.encode; * @method decode */ Ext.decode = Ext.util.JSON.decode; -+Ext.util.JSON.encodeDate = function(d) { + return d.format('"Y-m-d"'); +}; +