日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js 对象和Json的转换,js及深度复制

發布時間:2025/3/13 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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("")?+?'"';??
  • }??



  • 測試:?

    Java代碼??
  • 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及深度复制的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。