aboutsummaryrefslogtreecommitdiffstats
path: root/build/js
diff options
context:
space:
mode:
authorJohn Resig <jeresig@gmail.com>2006-08-13 15:15:15 +0000
committerJohn Resig <jeresig@gmail.com>2006-08-13 15:15:15 +0000
commit7d4bf9725472b7684533a35e5fbd143c28a5758c (patch)
tree3cd28ec43588d5933e8fc39749b10f6e2b34de1f /build/js
parent991390e2422d558cac2cfa5508fe3e921ac38e42 (diff)
downloadjquery-7d4bf9725472b7684533a35e5fbd143c28a5758c.tar.gz
jquery-7d4bf9725472b7684533a35e5fbd143c28a5758c.zip
Moved some more of the build files around.
Diffstat (limited to 'build/js')
-rw-r--r--build/js/json.js117
-rw-r--r--build/js/xml.js27
2 files changed, 144 insertions, 0 deletions
diff --git a/build/js/json.js b/build/js/json.js
new file mode 100644
index 000000000..d59ca0c97
--- /dev/null
+++ b/build/js/json.js
@@ -0,0 +1,117 @@
+/*
+ json.js
+ 2006-04-28
+
+ This file adds these methods to JavaScript:
+
+ object.toJSONString()
+
+ This method produces a JSON text from an object. The
+ object must not contain any cyclical references.
+
+ array.toJSONString()
+
+ This method produces a JSON text from an array. The
+ array must not contain any cyclical references.
+
+ string.parseJSON()
+
+ This method parses a JSON text to produce an object or
+ array. It will return false if there is an error.
+*/
+(function () {
+ var m = {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\'
+ },
+ s = {
+ array: function (x) {
+ var a = ['['], b, f, i, l = x.length, v;
+ 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] = ']';
+ return a.join('');
+ },
+ 'boolean': function (x) {
+ return String(x);
+ },
+ 'null': function (x) {
+ return "null";
+ },
+ number: function (x) {
+ return isFinite(x) ? String(x) : 'null';
+ },
+ object: function (x) {
+ if (x) {
+ if (x instanceof Array) {
+ return s.array(x);
+ }
+ var a = ['{'], b, f, i, v;
+ 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] = '}';
+ return a.join('');
+ }
+ return '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.toJSON = function(obj) {
+ return s.object(obj);
+ };
+})();
+
+String.prototype.parseJSON = function () {
+ try {
+ return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
+ this.replace(/"(\\.|[^"\\])*"/g, ''))) &&
+ eval('(' + this + ')');
+ } catch (e) {
+ return false;
+ }
+};
+
diff --git a/build/js/xml.js b/build/js/xml.js
new file mode 100644
index 000000000..cc94eb750
--- /dev/null
+++ b/build/js/xml.js
@@ -0,0 +1,27 @@
+Object.toXML = function( obj, tag ) {
+ if ( obj.constructor == Array ) {
+ var ret = "";
+ for ( var i = 0; i < obj.length; i++ )
+ ret += Object.toXML( obj[i], tag );
+ return ret;
+ } else if ( obj.constructor == Object ) {
+ var tag = tag || "tmp";
+ var p = "", child = "";
+
+ for ( var i in obj )
+ if ( obj[i].constructor == Array || /</.test(obj[i] + "") || Object.toXML.force[i] )
+ child += Object.toXML( obj[i], i );
+ else
+ p += " " + i + "='" + (obj[i] + "").replace(/'/g, "&apos;") + "'";
+
+ return "<" + tag + p + ( child ? ">\n" + child + "</" + tag + ">\n" : "/>\n" );
+ } else if ( obj.constructor == String ) {
+ //obj = obj.replace(/&lt;/g,"<").replace(/&gt;/g,">");
+ //return "<" + tag + "><![CDATA[" + obj + "]]></" + tag + ">";
+ return "<" + tag + ">" + obj + "</" + tag + ">\n";
+ }
+
+ return "";
+};
+
+Object.toXML.force = {};