js 对象和Json的转换,js及深度复制
生活随笔
收集整理的這篇文章主要介紹了
js 对象和Json的转换,js及深度复制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自:http://casheen.iteye.com/blog/121319 Java代碼?? 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("")?+?'"';?? }?? var?json?=?{?? ????str?:?"abcde",?? ????num?:?6,?? ????reg?:?/foobar/i,?? ????array?:?[1,2,3,4,5],?? ????func?:?function(x,y){return?x+y},?? ????obj?:?{a?:?"b"}?? }.toJSON();?? ?? alert(json);?? //?result?? {?? ?"str"?:?"abcde",?? ?"num"?:?6,?? ?"reg"?:?/foobar/i,?? ?"array"?:?[1,?2,?3,?4,?5],?? ?"func"?:?function(x,y){return?x+y},?? ?"obj"?:?{?? ?"a"?:?"b"?? }?? } ?
測試:?
轉載于:https://www.cnblogs.com/loushangshaonian/archive/2012/09/19/2693089.html
總結
以上是生活随笔為你收集整理的js 对象和Json的转换,js及深度复制的全部內容,希望文章能夠幫你解決所遇到的問題。