--------------------------
var a = { a: "aaa", b: "bbb", c: 123 };
var s = a.toJSON();
alert(s);
-------------------------------------------
Object.prototype.deep_clone = function()
{
eval("var tmp = " + this.toJSON());
return tmp;
}
Object.prototype.toJSON = function()
{
var json = [];
for (var i in this)
{
if (!this.hasOwnProperty(i)) continue;
//if(typeof this[i] == "function") continue;
json.push(
i.toJSON() + " : " +
((this[i] != null) ? this[i].toJSON() : "null")
)
}
return "{\n " + json.join(",\n ") + "\n}";
}
Array.prototype.toJSON = function()
{
for (var i = 0, json = []; i < this.length; i++)
json[i] = (this[i] != null) ? this[i].toJSON() : "null";
return "[" + json.join(", ") + "]"
}
String.prototype.toJSON = function()
{
return \'"\' +
this.replace(/(\\|\")/g, "\\$1")
.replace(/\n|\r|\t/g, function()
{
var a = arguments[0];
return (a == \'\n\') ? \'\\n\' :
(a == \'\r\') ? \'\\r\' :
(a == \'\t\') ? \'\\t\' : ""
}) +
\'"\'
}
Boolean.prototype.toJSON = function() { return this }
Function.prototype.toJSON = function() { return this }
Number.prototype.toJSON = function() { return this }
RegExp.prototype.toJSON = function() { return this }
// strict but slow
String.prototype.toJSON = function()
{
var tmp = this.split("");
for (var i = 0; i < tmp.length; i++)
{
var c = tmp[i];
(c >= \' \') ?
(c == \'\\\') ? (tmp[i] = \'\\\\\') :
(c == \'"\') ? (tmp[i] = \'\\"\') : 0 :
(tmp[i] =
(c == \'\n\') ? \'\\n\' :
(c == \'\r\') ? \'\\r\' :
(c == \'\t\') ? \'\\t\' :
(c == \'\b\') ? \'\\b\' :
(c == \'\f\') ? \'\\f\' :
(c = c.charCodeAt(), (\' \\u00\' + ((c > 15) ? 1 : 0) + (c % 16)))
)
}
return \'"\' + tmp.join("") + \'"\';
}
{
eval("var tmp = " + this.toJSON());
return tmp;
}
Object.prototype.toJSON = function()
{
var json = [];
for (var i in this)
{
if (!this.hasOwnProperty(i)) continue;
//if(typeof this[i] == "function") continue;
json.push(
i.toJSON() + " : " +
((this[i] != null) ? this[i].toJSON() : "null")
)
}
return "{\n " + json.join(",\n ") + "\n}";
}
Array.prototype.toJSON = function()
{
for (var i = 0, json = []; i < this.length; i++)
json[i] = (this[i] != null) ? this[i].toJSON() : "null";
return "[" + json.join(", ") + "]"
}
String.prototype.toJSON = function()
{
return \'"\' +
this.replace(/(\\|\")/g, "\\$1")
.replace(/\n|\r|\t/g, function()
{
var a = arguments[0];
return (a == \'\n\') ? \'\\n\' :
(a == \'\r\') ? \'\\r\' :
(a == \'\t\') ? \'\\t\' : ""
}) +
\'"\'
}
Boolean.prototype.toJSON = function() { return this }
Function.prototype.toJSON = function() { return this }
Number.prototype.toJSON = function() { return this }
RegExp.prototype.toJSON = function() { return this }
// strict but slow
String.prototype.toJSON = function()
{
var tmp = this.split("");
for (var i = 0; i < tmp.length; i++)
{
var c = tmp[i];
(c >= \' \') ?
(c == \'\\\') ? (tmp[i] = \'\\\\\') :
(c == \'"\') ? (tmp[i] = \'\\"\') : 0 :
(tmp[i] =
(c == \'\n\') ? \'\\n\' :
(c == \'\r\') ? \'\\r\' :
(c == \'\t\') ? \'\\t\' :
(c == \'\b\') ? \'\\b\' :
(c == \'\f\') ? \'\\f\' :
(c = c.charCodeAt(), (\' \\u00\' + ((c > 15) ? 1 : 0) + (c % 16)))
)
}
return \'"\' + tmp.join("") + \'"\';
}